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

Junit Java mockito-如何在循环中添加return语句?,junit,mockito,Junit,Mockito,这很好,我可以用不同的输出调用mock方法三次。但是对于每个测试场景,我的输出列表都会发生变化,我无法找到如何在基于不同返回的循环中完成这一点。 例如,如果我传递一个包含10个mockFetchReturn3对象的列表,那么应该有10个return语句。只需为注释中提供的答案编写代码: when(/* some method call*/).thenReturn(mockFetchReturn).thenReturn(mockFetchReturn2) .thenRetu

这很好,我可以用不同的输出调用mock方法三次。但是对于每个测试场景,我的输出列表都会发生变化,我无法找到如何在基于不同返回的循环中完成这一点。
例如,如果我传递一个包含10个mockFetchReturn3对象的列表,那么应该有10个return语句。

只需为注释中提供的答案编写代码:

when(/* some method call*/).thenReturn(mockFetchReturn).thenReturn(mockFetchReturn2)
            .thenReturn(mockFetchReturn3);
或者,您可以将列表传递给

OngoingStubbing stubbing = when(/* some method call*/);
for (int i = 0; ...) {
   subbing.thenReturn(mockFetchReturn(i));
}
List answers=Arrays.asList(mockFetchReturn,mockFetchReturn,…);
当(/*某些方法调用*/).thenAnswer(AdditionalAnswers.returnsElementsOf(logEntryList));

当返回一个对象(可能是名为
期望值
或类似的东西)时,请参见

。由于每个方法都返回相同的对象,因此可以执行
然后返回
方法链接。保存该对象,您可以在循环中调用它。的可能重复项
List<String> answers = Arrays.asList(mockFetchReturn, mockFetchReturn, ...);
when(/* some method call*/).thenAnswer(AdditionalAnswers.returnsElementsOf(logEntryList));