Fight the Future

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

DbUnitのDatabaseTestCaseを継承して独自のテストフレームワークを作る2

初期化とテストメソッド実行後のDBの状態も設定できます。

/**
 * Returns the database operation executed in test setup.
 */
protected DatabaseOperation getSetUpOperation() throws Exception
{
    return DatabaseOperation.CLEAN_INSERT;
}

/**
 * Returns the database operation executed in test cleanup.
 */
protected DatabaseOperation getTearDownOperation() throws Exception
{
    return DatabaseOperation.NONE;
}

この2つのメソッドです。DbUnitのデフォルトが上のソース。getSetUpOperation()で初期化の際のDBの状態を、getTearDownOperation()でテストメソッド実行後のDBの状態を設定できます。どちらもDatabaseOperationオブジェクトを返しますが、このクラスにはいろいろな定数があるので、それを使うだけでいいです。DatabaseOperation.CLEAN_INSERTは初期化対象のテーブルのデータをすべて削除してから初期化データを登録します。DatabaseOperation.NONEは何もしません。これらをテストフレームワークでオーバーライドすれば動作を変更できます。でもデフォルトが一番使いやすい気がします。ここまで書いてなんですが、変えなくていいかもです。