UTFlute
DBFluteプロジェクトが提供するライブラリ UTFlute のページ。
UTFluteとは?
ずばり言うと
UTFlute は、自分で new したものにDIできる JUnit 拡張 です。
e.g. 自分で new した Action に DI だけして index() を実行 @Java
// ## Arrange ##
FooAction action = new FooAction();
inject(action);
// ## Act ##
action.index();
UTFluteの特徴
ざっとこんな感じです
- inject()
- 自分で new したものに DI する
- registerMock()
- inject()でDIされるコンポーネントをMockに
- markHere()
- ここを通ったことをassertするための仕組み (plain)
- cannonball()
- マルチスレッド実行、10スレッドでよーいドン! (plain)
- policeStoryOf...()
- JavaクラスやJSPファイルなどを走査して好きなようにチェック (plain)
- テストクラスDI
- テストクラスのフィールドにコンポーネントをDI
- 自動トランザクション
- テストケースごとに強制Rollbackトランザクション
- コンテナキャッシュ
- 一回の実行単位でDIコンテナの起動は一回だけ
ブログが参考になります
サンプルコードがブログに載っています。
Exampleも参考になります
DBFlute Example では豪快に使っています。
UTFluteのセットアップ
まず、Maven の dependency の設定をして...
e.g. LastaFluteを使っている場合の UTFlute の dependency 設定 @pom.xml
<dependency>
<groupId>org.dbflute.utflute</groupId>
<artifactId>utflute-lastaflute</artifactId>
<version>0.9.2</version>
<scope>test</scope>
</dependency>
Unittest上でのDI環境が準備されたスーパークラスを作成します。
Actionクラスなどweb依存したクラスをテストする想定であれば、スーパークラスでは WebContainertestCase を継承します。
e.g. 独自のスーパークラスを作成、WebContainertestCaseを継承 @Java
public abstract class UnitContainertestCase extends WebContainertestCase {
}
詳しくは、専用のページにて。