S2.4からJUnit4を拡張したテスティングフレームワークであるS2JUnit4が利用できます.S2DaoのDaoをテストするにはどうしたらよいか調べてみました.
とりえあずここの内容は読み込む必要があります.
http://s2container.seasar.org/ja/S2JUnit4.html
Daoをテストする簡単なテストクラスを作ります.
@RunWith(Seasar2.class) public class AdminInfoDaoTest { private TestContext ctx; private UserInfoDao userInfoDao; public void testSelectAll() { List<UserInfo> result = this.userInfoDao.selectAll(); assertBeanEquals("1", ctx.getExpected(), result); } }
テストクラスを用意したら,次に事前データとしてXLSファイルを用意します.(ファイルのフォーマットは,上記のURLを参照してください)
testSelectAll用の事前データであれば,AdminInfoDaoTest_testSelectAll.xlsになります.特にテストメソッドごとに作成しないならAdminInfoDaoTest.xlsになります.
さらに,期待値のXLSファイルも用意します.testSelectAll用ならばAdminInfoDaoTest_testSelectAll_Expected.xlsです.
テストクラス用のdiconファイルも,AdminInfoDaoTest.diconとして以下のように用意します.
<include path="javaee5.dicon"/> <include path="aop.dicon"/> <include path="dao.dicon"/>
S2.4のソースに含まれるs2junit4.diconをsrc/test/resourcesなどに配置します.
これで準備は完了です.Eclipseのテストランナーからテストを実行してみてください.
Daoもちゃんとインジェクトされますし,テストメソッドがトランザクション境界になり,テストメソッドが終了する際にテストで加えたDBへの変更はきれいさっぱりロールバックされます.
ちなみに,DDL系のテストではintの戻り値のチェックだけをしました.