Burlarse de un método que devuelve un arroyo y se llama más de una vez

Agenda:
MyStreamClass mock = mock(MyStreamClass.class);

when(mock.streamMethod()).thenReturn(Stream.of("A", "B"));

System.out.println(""+mock.streamMethod().findFirst());
System.out.println(""+mock.streamMethod().findFirst());

la segunda llamada de findFirst tirará java.lang.IllegalStateException: secuencia ya ha sido operado o cerrada

Maciej Kowalski:

Prueba el thenAnswerlugar de thenReturn:

Answer<Stream> answer = new Answer<Stream>() {
    public Stream answer(InvocationOnMock invocation) throws Throwable {
        return Stream.of("A", "B");
    }
};


when(mock.streamMethod()).thenAnswer(answer);

Ahora se creará una nueva fuente para cada llamada a streamMethod.

Además de lectura:

He aquí un artículo que escribí sobre dinámica de respuesta en Mockito que podrían ser complementarias.

Supongo que te gusta

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