mockito(1) スタブ的に使う
DAO依存のクラステストが面倒
テスト対象のクラスAがDAOクラスBに依存しているような場合、テストデータをDBにあらかじめ登録する必要がある。
dbunitのようなファイルからレコードを読み込むフレームワークはあるが、DAOではないクラスAのテストのためにレコードを仕込むのは面倒。
mockitoを使う
レコードをいちいち仕込むのは面倒なのでスタブを作成して、実際のメソッドをテストデータ呼び出しのメソッドに置き換える。
ここでmockitoフレームワークを使用する。
準備
今回はmavenを使用せず、手作業でライブラリを導入する。
公式から下記をダウンロード。
-
- mockito-core-2.0.29-beta.jar
mavenリポジトリにアクセスして、依存するライブラリをダウンロード。
依存関係にあるライブラリは「maven-metadata.xml」参照。
-
- byte-buddy-0.6.11.jar
- objenesis-2.1.jar
ビルドパスに外部jarとして追加。
実際に使ってみる
Userテーブルを操作するUserDaoとUserDaoを使用するUserLogicを用意。
ここではUserDaoをモックして、テストデータを返すようにした。
モックの作成方法、注入方法は複数あるが、下記以外はモックが注入されないなどうまくいかなかった。