mockito(1) スタブ的に使う

DAO依存のクラステストが面倒

テスト対象のクラスAがDAOクラスBに依存しているような場合、テストデータをDBにあらかじめ登録する必要がある。
dbunitのようなファイルからレコードを読み込むフレームワークはあるが、DAOではないクラスAのテストのためにレコードを仕込むのは面倒。

mockitoを使う

レコードをいちいち仕込むのは面倒なのでスタブを作成して、実際のメソッドをテストデータ呼び出しのメソッドに置き換える。
ここでmockitoフレームワークを使用する。

準備

今回はmavenを使用せず、手作業でライブラリを導入する。
公式から下記をダウンロード。

    1. mockito-core-2.0.29-beta.jar

mavenリポジトリにアクセスして、依存するライブラリをダウンロード。
依存関係にあるライブラリは「maven-metadata.xml」参照。

    1. byte-buddy-0.6.11.jar
    2. objenesis-2.1.jar

ビルドパスに外部jarとして追加。

実際に使ってみる

Userテーブルを操作するUserDaoとUserDaoを使用するUserLogicを用意。
ここではUserDaoをモックして、テストデータを返すようにした。
モックの作成方法、注入方法は複数あるが、下記以外はモックが注入されないなどうまくいかなかった。

続きを読む