JUnit5 parametrizar prueba con fuente método múltiple

Agenda:

Tengo 4 pruebas cada uno con su propia fuente de método, pero la única diferencia entre ellos es un parámetro, en cada método I INIT los simulacros en forma diferente. ¿Hay alguna manera de que me puede pasar múltiples fuentes método?

Ejemplo:

    @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");
            //...
   }

Busco algo como:

@ParameterizedTest
@MethodSource("mSource1", "mSource2")
public void testM1(MyMock m1, MyMock m2, MyEnum myEnumValue) {
    callMut(m1, m2, myEnumValue);
    //same assertion
}
Maciej Kowalski:

El @MethodSourcepuede aceptar como muchos métodos de fábrica como usted tiene gusto según javadocs:

Cadena abstracta pública [valor]

Los nombres de los métodos de la clase de prueba para uso como fuentes de argumentos; no debe estar vacío.

Así que simplemente poner esas llaves dentro y asegurarse de que devuelven un valor de enumeración también:

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

Tal como lo veo, sin embargo, puede que tenga que mover el cuándo (). Entonces () puesta a punto para la prueba en sí, pero eso es un detalle de su impl.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=204046&siteId=1
Recomendado
Clasificación