基底クラスとは?
「第2回:DBUnitのインストール」では、DBUnitをインストールしてテストデータを作成する事前準備について解説しました。最終回の今回はテストケースを作成する手順について解説していきましょう。
まずは、テストケース作りの労力を軽減するために基底クラスを作成しましょう。抽象基底クラスは、dbunit.jarに内包されているTestCaseを継承した各テストクラスのベースとなるクラスです。個別のデータベーステストケースは、このベースクラスを継承して作成します。今回は、抽象基底クラスの名前をDaoBaseTestCaseとします。
DaoBaseTestCaseは、テストデータExcelファイル(xxx_prepare.xls)からIDataSetオブジェクトを生成し、テストデータとして使用します。テストの実行前にこのテストデータが自動的にデータベースに反映されることになります。
基底クラスのサンプルは以下からダウンロードしてください。
事前処理の元データを退避し、テストデータを投入する機能や事後処理の元データを復元する機能、またはデータベースに登録されているデータを取得する機能などを、あらかじめ基底クラスに用意しておけば、基底クラスを継承して作成する各テストクラス作業が大変楽になります。
(画像をクリックすると別ウィンドウに拡大図を表示します)
DaoBaseTestCaseクラスのAPIについて
ここで、DaoBaseTestCaseクラスのAPIについて、それぞれみていきましょう。
getConnectionは、DBコネクションを取得するメソッドです。getActualTableは、データベースに登録されているデータを取得するメソッドとなります。
getExpectedTableは、テスト結果として期待されるデータを取得するメソッドです。getTableRowCountは、データベースに登録されているデータ件数を取得するメソッドとなります。
assertTableは、期待値とデータベースに登録されているデータの比較をするメソッドです。isSkipColumnは、assertTableメソッド実行時に、比較をスキップするカラム名を指定するメソッドとなります。
assertEntityは、期待値とEntityデータの比較をするメソッドです。getTestFileNameは、テストデータExcelファイルの名前を取得するメソッドとなります。
getExpectedTableは、期待値データを取得するメソッドです。getSubClassは、サブクラスの実行時クラスを取得するメソッドとなります。
では、今作成した基底クラス使ってテストケース作成してみましょう。 次のページ