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 {
}
	詳しくは、専用のページにて。
