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.7.4</version>
      <scope>test</scope>
    </dependency>

UnitTest上でのDI環境が準備されたスーパークラスを作成します。

e.g. 独自のスーパークラスを作成、DI設定を変えたり @Java
public abstract class UnitContainerTestCase extends ContainerTestCase {

    @Override
    protected String prepareConfigFile() { // これは Seasar の場合
        return "test_app.dicon"; // テスト用のdiconを読み込むように変更
    }
}

詳しくは、専用のページにて。