Maquette une méthode qui retourne un flux et est appelé plus d'une fois

PhoneBook:
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());

le deuxième appel de findFirst lancera java.lang.IllegalStateException: flux a déjà été opéré ou fermé

Maciej Kowalski:

Essayez le thenAnswerlieu 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);

Maintenant , sera créé un nouveau flux pour chaque appel streamMethod.

En outre lecture:

Voici un article écrit sur Answering dynamique dans Mockito qui pourraient être complémentaires.

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=172371&siteId=1
conseillé
Classement