Fight the Future

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

IT勉強会での初プレゼンなどお助けします!

勉強会でスピーカーをやりたいけど、プレゼンが初めて、苦手という方に無償でコーチできます。スライドのレビューや録画したリハへのアドバイスなどなど。Twitter@jyukutyoまでメンションでもDMでもお気軽にご連絡ください。

私はIT講師の経験があり、プレゼンはデブサミやJJUG CCCなど200人規模の経験が豊富で最大800人の前でプレゼンしました。海外ではDevoxxUSで。デブサミ2017では公募スピーカー1位、デブサミ関西2012アワードで5位となりました。

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