when(/* some method call*/).thenReturn(mockFetchReturn).thenReturn(mockFetchReturn2)
.thenReturn(mockFetchReturn3);
这很好用,我可以用不同的输出调用mocked方法三次。但是我的输出列表可以针对每个测试场景进行更改,但我无法根据不同的返回信息找到如何在循环中完成此操作。 对于例如如果我传递10个mockFetchReturn3对象的列表,那么应该有10个return语句。
答案 0 :(得分:1)
只需为评论中提供的答案编码:
OngoingStubbing stubbing = when(/* some method call*/);
for (int i = 0; ...) {
subbing.thenReturn(mockFetchReturn(i));
}
或者,您可以将列表传递给
List<String> answers = Arrays.asList(mockFetchReturn, mockFetchReturn, ...);
when(/* some method call*/).thenAnswer(AdditionalAnswers.returnsElementsOf(logEntryList));