2017-10-13 5 views
2

Junit5の拡張機能をJunit5と同じように書こうとしていますが、新しい(ステートレスな)拡張システムでこれを行う方法を理解できません。JUnit 5、テストクラスの情報を拡張クラスに渡す

以前のバージョンのアイデアは、ユーザーが情報を拡張クラスに渡して、その動作方法を変更できるということでした。ここで行うために使用され、およそ何示す擬似スニペットです:

public void MyTest { 

    // here I can define different behaviour for my extension 
    @Rule MyCustomRule rule = MyCustomRule.of(Foo.class).withPackage(Bar.class.getPackage).alsoUse(Cookies.class); 

    @Test 
    public void someTest() { 
    // some test code already affected by the @Rule 
    // plus, user has access to that class and can use it, say, retrieve additional information 
    rule.grabInfoAboutStuff(); 
    } 
} 

は今、私は、などを使用することをライフサイクル何、JUnitの5拡張子を操作する方法を知っているしかし、私は、テスト・ライターを与える方法がわかりませんJUnit5で拡張機能の動作を変更する機能任意のポインタが高く評価されました。あなたはJUnitの4

のルールのためにしかし、私はJUnitの中でそのようなサポートを追加することに取り組んでいますができように、プログラムExtensionにパラメータを渡すために、残念ながらできませんJUnitの木星5.0.1、のよう

答えて

4

木星5.1。あなたが好きな場合は、次の問題に従うことができます:暫定でhttps://github.com/junit-team/junit5/issues/497

を、拡張子にパス情報への唯一の方法は、カスタム注釈をサポートし、そこからユーザーが提供する情報を抽出するための拡張用です。たとえば、ユーザーはSpring Frameworkの@EnabledIf注釈にカスタムSpEL expressionを提供することができ、ExecutionCondition拡張子は、リフレクションを使用して注釈からexpressionを取得します。

+0

ありがとう、情報のために、私はその1つに目を維持する:) – Siliarus

関連する問題