ストリームを返し、複数回呼び出されるメソッドをモック

電話帳:
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());

この関数は、FindFirstの2回目の呼び出しはjava.lang.IllegalStateExceptionをスローします:ストリームがすでに時に操作またはクローズされています

マチェイコワルスキー:

試してみてくださいthenAnswer代わりにthenReturn

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


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

今、新しいストリームへの各呼び出しのために作成されますstreamMethod

また、読み取り:

ここで私は上に書いた記事ですMockitoの動的留守番相補的であるかもしれません。

おすすめ

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