2011-10-27 6 views
9

@Testの期待されるタグに似たカスタムJUnitアノテーションを作成したかったのですが、アノテーションメッセージもチェックしたいと思います。JUnitカスタムアノテート

これを行う方法についてのヒントや、準備ができていることがありますか?

答えて

4

JUnit 4.9では、テストのためのライブラリの「ルール」の使用を強化しました。これはカスタム注釈と同様に機能すると思います。開始点としてTestRuleを見てください。そのインターフェイスに基づいてルールを実装し、@ClassRuleまたは(メソッドレベル)@Ruleアノテーションを使用して、テストでそれらを使用することができます。

具体的な例としては、ExpectedExceptionがあります。これにより、@Testの期待されるパラメータのような例外を指定できるようになります。

4

JUnit4でカスタム注釈を取得するには、独自のカスタムランナー実装を作成し、TestクラスのRunWithアノテーションにそれを指定する必要があります。

JUnit 4のデフォルト実装ランナーであるBlockJUnit4ClassRunner(メモリがうまく機能している場合)を見て始めてください。テストクラスは次のようになります

カスタムランナーMyRunnerで@MyTestという名前のカスタム注釈をピックアップしたいと仮定すると、:

@RunWith(MyRunner.class) 
class Tests { 
    ... 
    @MyTest 
    public void assumeBehaviour() { 
     ... 
    } 
} 

「リードマック」によって答えはかなり良い仕事をしていませんカスタム注釈がどのように実装されているかを記述する。

+6

「Reid Mac」の答えはもはやありません。 – BrunoJCM

1

最初の回答で説明したようにカスタムTestRuleを作成することもできますし、すでにテストの開始/終了を処理する方法を持っているTestWatcherを使用/拡張することもできます。 メソッドはapply(Statement base, Description description)です。説明は実際にはテストメソッドのラッパーです。 Descriptionには、処理したいカスタム注釈を指定することで、あなたが望むことを行えるようにする、素晴らしい方法getAnnotation(annotationClass)があります。