TOPシステム開発> 第3回:テストケースの作成と自動化 (1/3)

DBunitでテストの自動化

DBunitでテストの自動化

第3回:テストケースの作成と自動化

著者:プロトシステム 広谷 嘉巳

公開日:2008/03/31(月)

基底クラスとは?

第2回:DBUnitのインストール」では、DBUnitをインストールしてテストデータを作成する事前準備について解説しました。最終回の今回はテストケースを作成する手順について解説していきましょう。

まずは、テストケース作りの労力を軽減するために基底クラスを作成しましょう。抽象基底クラスは、dbunit.jarに内包されているTestCaseを継承した各テストクラスのベースとなるクラスです。個別のデータベーステストケースは、このベースクラスを継承して作成します。今回は、抽象基底クラスの名前をDaoBaseTestCaseとします。

DaoBaseTestCaseは、テストデータExcelファイル(xxx_prepare.xls)からIDataSetオブジェクトを生成し、テストデータとして使用します。テストの実行前にこのテストデータが自動的にデータベースに反映されることになります。

基底クラスのサンプルは以下からダウンロードしてください。

サンプルプログラム
ZIPファイル DaoBaseTestCase.zip (ZIPファイル/2.62KB)

事前処理の元データを退避し、テストデータを投入する機能や事後処理の元データを復元する機能、またはデータベースに登録されているデータを取得する機能などを、あらかじめ基底クラスに用意しておけば、基底クラスを継承して作成する各テストクラス作業が大変楽になります。

図1:テストケースクラス図
(画像をクリックすると別ウィンドウに拡大図を表示します)

DaoBaseTestCaseクラスのAPIについて

ここで、DaoBaseTestCaseクラスのAPIについて、それぞれみていきましょう。

getConnectionは、DBコネクションを取得するメソッドです。getActualTableは、データベースに登録されているデータを取得するメソッドとなります。

getExpectedTableは、テスト結果として期待されるデータを取得するメソッドです。getTableRowCountは、データベースに登録されているデータ件数を取得するメソッドとなります。

assertTableは、期待値とデータベースに登録されているデータの比較をするメソッドです。isSkipColumnは、assertTableメソッド実行時に、比較をスキップするカラム名を指定するメソッドとなります。

assertEntityは、期待値とEntityデータの比較をするメソッドです。getTestFileNameは、テストデータExcelファイルの名前を取得するメソッドとなります。

getExpectedTableは、期待値データを取得するメソッドです。getSubClassは、サブクラスの実行時クラスを取得するメソッドとなります。

では、今作成した基底クラス使ってテストケース作成してみましょう。 次のページ


1   2  3  次のページ


株式会社ビーサンク  広谷 嘉巳
著者プロフィール
株式会社ビーサンク  広谷 嘉巳
Javaを使ったシステム開発に従事し、オブジェクト指向での設計から開発を得意としている。以前はデザインパターンを取り入れたクラス設計やリファクタリングでのコードの体質改善という作業も行っていた。自分の力がまだまだと自覚しており、JavaやUMLの資格も積極的に取得している。仕事の傍らスキー1級やスノボ、テニス、また、野菜ソムリエ取得やフランス料理学校に通うなど、仕事よりも趣味の方に重きを置いているのが玉に瑕。
http://bexank.co.jp/


INDEX
第3回:テストケースの作成と自動化
基底クラスとは?
  テストケース作成手順
  Antタスクサンプル