データベースに行を挿入する単体テストがあり、後で DBUnit がそれらの行を自動的にクリーンアップするようにしたいと思います (DBUnit は最初にこれらの行を挿入しません。これは純粋にテスト対象のコードの責任です)。
ありがとう。
INSERT/UPDATE/DELETE クエリをトランザクション対応にし、テストが完了したらロールバックします。
JUnit4 を使用している場合は、注釈を付けて関数を宣言できます。関数は@AfterClass
すべてのテストの後に実行され、テーブルに追加したすべての行を削除できます。
JUnit3 には同等のものはありませんが、tearDown()
各テストの後に実行されるメソッドをオーバーライドできます ( @After
JUnit4 のアノテーションに相当)。
Before メソッドで外部リソース (ファイル/DB) を割り当てる場合は、テストの実行後にそれらを解放する必要があります。public void メソッドに @After のアノテーションを付けると、そのメソッドは Test メソッドの後に実行されます。すべての @After メソッドは、Before メソッドまたは Test メソッドが例外をスローした場合でも実行されることが保証されています。スーパークラスで宣言された @After メソッドは、現在のクラスの後に実行されます。
例ではファイルをリソースとして示していますが、DB のクリーンアップに使用できます。
public class Example {
File output;
@Before public void createOutputFile() {
output= new File(...);
}
@Test public void something() {
...
}
@After public void deleteOutputFile() {
output.delete();
}
}