JUnitでDBUnitを使用してテーブル比較する
JUnitでDBUnitを使用してテーブルの比較をします。
insert.xlsxでデータを投入し、テーブルの期待値をexpect.xlsxとします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
String[] sort = {"カラム名1","カラム名2"}; String[] exclude = {"カラム名3"}; FileInputStream fis = new FileInputStream("insert.xlsx"); IDataSet expectDataSet = new XlsDataSet(fis); ITable expect = expectDataSet.getTable("insert.xlsxのシート名"); // 比較対象外のカラム設定 expect = DefaultColumnFilter.excludedCoolumnsTable(expect, exclude); // 指定したカラムでソート expect = new SortedTable(expect, sort); IDataSet dataSet = jdbcConn.createDataSet(); ITable actual = dataSet.getTable("シート名"); // 比較対象外のカラム設定 actual = DefaultColumnFilter.excludedCoolumnsTable(actual, exclude); // 指定したカラムでソート actual = new SortedTable(actual, sort); // 検証 Assertion.assertEquals(actual,expect); |
エクセルの1行目はテーブルのカラム名で、2行目から実データです。
上記のように比較する際に除外したいカラム(更新日付など)を指定でき、また、ソートすることによりソートしてデータの比較を正しく行うことができます。
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^