こんなのしたくない??
@SetUpOperation(value = DatabaseOperationType.CLEAN_INSERT, pathname = "org/dbunitng/dept-emp.xml") @Test public void verifySelectAllFromDept() { // call target method and assert... }
要はDbUnitのアノテーション対応。
@SetUpOperationでテスト実行前にテストデータを投入する。
アノテーションの属性でDbUnitのDatabaseOperationを指定したり、テストデータのファイルを指定したりできる。
Javaにおいてデータベースと連携した自動テストはDbUnitがデファクトスタンダードだけど、なんか面倒なんだよね、DbUnitって。
DatabaseTestCaseを継承したり*1、setUpやtearDownでOperationを指定したり、投入するデータ読み込んだりとか。
アノテーションに対応したらちょっと楽になるかな、とか思った。
なので、作ってみました!*2
さすがに単体ではできないので、TestNGと連携させます。
TestNGのリスナーとしてDbUnitとの連携を実現します。
testng.xmlにリスナーを記述します。
<listeners> <listener class-name="org.dbunitng.listeners.DbUnitNGTestListener"></listener> </listeners>
あとはテストメソッドにアノテーションを指定するだけ!
テストデータはDbUnit形式のXMLまたはExcelファイルに記述します。
ここまで書いていたら、ソースを落とせた方がいいと思ったので、SourceForge.JPにプロジェクトを申請しました。
ってニーズはあるのかな??