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と書きます。