読者です 読者をやめる 読者になる 読者になる

Fight the Future

何かを始めたら、半分成功したのと同じ

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は何もしません。これらをテストフレームワークでオーバーライドすれば動作を変更できます。でもデフォルトが一番使いやすい気がします。ここまで書いてなんですが、変えなくていいかもです。