データベースを初期データセットに初期化するには、次のメソッドをテスト ケースに実装するだけです。
@Override
protected DatabaseOperation getSetUpOperation() throws Exception
{
return DatabaseOperation.CLEAN_INSERT; // by default (will do DELETE_ALL + INSERT)
}
@Override
protected DatabaseOperation getTearDownOperation() throws Exception
{
return DatabaseOperation.NONE; // by default
}
一部のテストで空のテーブルに行が挿入される場合 (たとえば、初期データセットで定義されていない場合)、外部キー制約が存在する可能性があります。
この空のテーブルを行なしでデータセットに追加するだけです:
<mydb_mypopulatedtable id="1" name="toto" alias="funky"/>
<mydb_mypopulatedtable id="2" name="titi" alias="groovy"/>
<mydb_mypopulatedtable id="3" name="tutu" alias="creepy"/>
<mydb_myemptytable />
ここで、myemptytable には mypopulatedtable への外部キーがあります。myemptytable が定義されていない場合、DBUnit は mypopulatedtable を削除しようとしますが、制約のために失敗します。定義されている場合、DBUnit は前に myemptytable 行を削除します。