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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java mockito - 如何在循环中添加return语句?相关的知识,希望对你有一定的参考价值。

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

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

答案

只需为评论中提供的答案编写代码:

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

以上是关于Java mockito - 如何在循环中添加return语句?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 JUnit Test Java 中替换 Mockito 以存根类

如何在 Java 中使用 Mockito 模拟结果集并填充它

Mockito / PowerMockito每次在不同实例的循环中模拟静态方法?

如何测试 Json.parser 不是用 mockito java 调用的?

如何在2.7.x中使用Mockito.doReturn

如何使用 eclipse-plugin 打包将 Mockito 添加到 Tycho 的单元测试中的测试类路径