Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

DbUnitライブラリでCSV形式のファイルにも対応しました

TestNG+DbUnitライブラリDbUnitNGで、初期値や期待値のファイルとしてCSVにも対応しました(他はXMLとExcel)。


意外に知らないDbUnitでCSVを使う方法 - Fight the Future じゅくのblogにあるように、DbUnitではCSVファイルの場合「table-ordering.txt」というファイルが必須なので、このファイルをアノテーションに指定した場合、CSVとして処理します。
「table-ordering.txt」は定数としてDbUnitNGConstrantsにあります。
こんな感じです。

@SetUpOperation(pathname = DbUnitNGConstrants.CSV_ORDER_FILE, value = DatabaseOperationType.CLEAN_INSERT)
public void testCsvFile() {
}

pathname属性にファイル名「table-ordering.txt」だけ指定しているので、テストクラスと同じパッケージに配置します。
「table-ordering.txt」はこんな感じ。

dept
emp

テーブル名を記述します。そして、この名前に対応するCSVファイルをテキストファイルと同じパッケージに配置します。dept.csvとemp.csvです。

DEPTNO,DNAME,LOC
10,ACCOUNTING,NEW YORK
EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO
7782,CLARK,MANAGER,7839,1981-01-09,2450.0,null,10

1行目は列名、2行目以降にデータを記述します。nullの場合はそのままnullと書きます。