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 {
}

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