when(/* some method call*/).thenReturn(mockFetchReturn).thenReturn(mockFetchReturn2)
.thenReturn(mockFetchReturn3);
这很好,我能够以不同的输出来调用三次模拟方法。但是我的输出列表可以改变每个测试方案,我找不到如何根据不同的回报在循环中完成此操作。例如如果我通过10个oigfetchreturn3对象的列表,则应该有10个返回语句。
只是评论中提供的答案的代码:
OngoingStubbing stubbing = when(/* some method call*/);
for (int i = 0; ...) {
stubbing = stubbing.thenReturn(mockFetchReturn(i));
}
另外,您可以将列表传递给
List<String> answers = Arrays.asList(mockFetchReturn, mockFetchReturn, ...);
when(/* some method call*/).thenAnswer(AdditionalAnswers.returnsElementsOf(logEntryList));
还请参见类似的问题