電話帳:
私は、独自の方法でソースと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
}
マチェイコワルスキー:
@MethodSource
Javadocには、好きなど、多くのファクトリメソッドとして受け入れることができます。
パブリック抽象String []型値
テストクラスのメソッドの名前は、引数のための情報源として使用します。空にすることはできません。
だから、単に中括弧の中にあるものを入れて、彼らはまた、列挙型の値を返します
@MethodSource({"mSource1", "mSource2"})
私はかかわらず、それを見ると、あなたはテスト自体に()。その後、()セット・アップを移動する必要があるが、あなたのimplの詳細をthatsのこと。