テストケース作成手順
では、テストケースを作成していきましょう。
まず、テストクラスには基底クラスのDaoBaseTestCaseを継承させます(リスト1)。
次に、DaoBaseTestCaseで宣言されている抽象メソッド「getTestFileName」「getTestFileName」「getSubClass」を実装します(リスト2)。
getTestFileNameは、テストデータExcelファイルの名称を指定します。getExpectedTableは、テスト結果として期待されるデータを取得します。getSubClassは、自分自身の実行時クラスを指定します。
登録(更新)系のテストで、期待値とデータベースに登録されているデータの比較をする際、期待値を予測できないカラム(例:「更新日時」など現在日時が設定されるカラム)が存在する場合は、DaoBaseTestCaseクラスのisSkipColumnメソッドをオーバーライドし、比較しない(スキップする)カラムを指定します(リスト3)。
スキップするカラムが存在しない場合、isSkipColumnメソッドはオーバーライドする必要はありません。
最後にテストメソッド(testXxx())を作成し、テストコードを記述します。登録(更新)系は、登録(更新)後のテーブルの値とExcelシートのデータを比較します(リスト4)。検索系は検索結果が正しいかどうかをEntityとExcelシートで比較します(リスト5)。
このように、データベースに登録されているデータを取得する機能など、あらかじめテストケース作成の際に必要な機能を基底クラスで用意しておけば、大変便利でしょう。
上記の機能を踏まえたサンプルソース「SampleDaoImplTest.java」は以下からダウンロードできます。
DBUnitはAntタスクを利用すれば単体テストの実施などが自動化されます。では次に、Antタスクによる単体テストの自動化について解説していきましょう。
(画像をクリックすると別ウィンドウに拡大図を表示します)
Antタスクで自動化
DBunitはAntタスクが用意されていて、Antから呼び出して使用することができます。Antタスクを作成しておくと、すべてのテストケースのコンパイルと単体テストの実施、またテスト結果のHTML形式レポート出力が一度に行われるので大変便利です。 次のページ