java - 我的模拟方法在每次调用时返回相同的实例,我如何让它返回一个新实例?
问题描述
private mockedObject cpMock;
@Test
public void test() {
Manager managerTest = new Manager(cpMock, size);
Instance instance = new Instance(size);
when(cpMock.requestInstance()).thenReturn(instance);
}
解决方案
有一个重载 for thenReturn
,它有一个 var-arg 参数:
when(cpMock.requestInstance())
.thenReturn(instance, instance1, instance2, instance3);
根据其 javadocs,它将按该顺序返回这些对象。从第 4 次调用开始,instance3
将返回(最后一个值):
设置调用方法时要返回的连续返回值。例如:
when(mock.someMethod()).thenReturn(1, 2, 3);
序列中的最后一个返回值(例如:3)决定了进一步连续调用的行为。
推荐阅读
- html - 更改 HTML img 标题上的字体
- python - 如何在目录中搜索文件满足条件?
- javascript - 如何为回调函数设置默认值?
- reporting-services - SSRS 数据返回但未在 Tablix 中显示
- javascript - 从没有方法的字符(for循环)javascript创建一个字符串
- ios - 在 iOS 的 MapKit 中显示一张特定的国家地图
- typescript - 即使之前有检查,VSCode TypeScript Map get 仍然被认为是未定义的
- java - 用于执行 Java 控制台应用程序的 Bash 脚本
- excel - 比较单元格中逗号分隔的字母数字字符
- java - 我的 spring-boot 程序在属性中没有 JavaBuilder