JUnit5は、複数のメソッドのソースとテストをパラメータ化

電話帳:

私は、独自の方法でソースと4つのテストそれぞれを持っていますが、それらの間の唯一の違いは、私は別の方法でモックをinitの各メソッドでは、一つのパラメータです。私は、複数のメソッドのソースを渡すことができるという方法はありますか?

例:

    @ParameterizedTest
    @MethodSource("mSource1")
    public void testM1(MyMock m1, MyMock m2) {
            callMut(m1, m2, ENUM.VAL1);
            //same assertion
    }

    @ParameterizedTest
    @MethodSource("mSource2")
    public void testM2(MyMock m1, MyMock m2) {
            callMut(m1, m2, ENUM.VAL2);
            //same assertion
    }

   private static Stream<Arguments>  mSource1() {
            when(myMock1.getX()).thenReturn("1");
            //...
    }

   private static Stream<Arguments>  mSource2() {
            when(myMock1.getY()).thenReturn("1");
            //...
   }

私のようなものを探しています:

@ParameterizedTest
@MethodSource("mSource1", "mSource2")
public void testM1(MyMock m1, MyMock m2, MyEnum myEnumValue) {
    callMut(m1, m2, myEnumValue);
    //same assertion
}
マチェイコワルスキー:

@MethodSourceJavadocには、好きなど、多くのファクトリメソッドとして受け入れることができます。

パブリック抽象String []型値

テストクラスのメソッドの名前は、引数のための情報源として使用します。空にすることはできません。

だから、単に中括弧の中にあるものを入れて、彼らはまた、列挙型の値を返します

@MethodSource({"mSource1", "mSource2"})

私はかかわらず、それを見ると、あなたはテスト自体に()。その後、()セット・アップを移動する必要があるが、あなたのimplの詳細をthatsのこと。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=204043&siteId=1