Java mockito - 如何在循环中添加return语句?

时间:2018-02-07 17:16:31

标签: junit mockito

when(/* some method call*/).thenReturn(mockFetchReturn).thenReturn(mockFetchReturn2)
            .thenReturn(mockFetchReturn3);

这很好用,我可以用不同的输出调用mocked方法三次。但是我的输出列表可以针对每个测试场景进行更改,但我无法根据不同的返回信息找到如何在循环中完成此操作。 对于例如如果我传递10个mockFetchReturn3对象的列表,那么应该有10个return语句。

1 个答案:

答案 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));

另见similar questions