ひがやすを技術ブログ

電通国際情報サービスのプログラマ

S2EJB3Unit

S2EJB3Unitは、S2DaoTestCaseのEJB3版です。テスト対象のオブジェクトはS2EJBTestCaseを継承したクラスで次のように指定します。

@EJB
private Foo foo;

テストに必要なクラスは次のようにして登録します。クラスに設定されたアノテーションを元に適切にコンポーネントの定義を組み立てます。


protected void setUp() {
register(FooImpl.class);
register(BarDaoImpl.class);
}
複雑なコンポーネントを組み立てるときは、diconファイルに登録して、includeで読み込むこともできます。

protected void setUp() {
include("foo.dicon");
}
testXxxの中では、@EJBで指定されたコンポーネントが既に設定されているので、それを使ってそのままテストができます。
データベースに対するテストは、S2Unitと同様にExcelでデータを用意して簡単にテストを行えます。
http://s2container.seasar.org/ja/S2Unit.html#DBTest
@Rollbackを使ってtestXxxの直前にトランザクションを開始し、testXxxの直後に自動的にロールバックを行い、テストしたデータの後始末を簡単に行えるようにすることもできます。

@Rollback
void testXxx() {
...
}
j2ee.diconとs2hibernate3.diconがクラスパスに含まれていれば、自動的にincludeします。
S2EJB3Unitは、S2Tigerに含める予定です。以前、KuinaUnitと呼んでいたやつは、S2EJB3Unitに統合されます。