【发布时间】:2021-11-19 23:18:32
【问题描述】:
我正在为使用 Mockito 的代码编写测试用例。代码是这样的,
public class Example {
@Autowired
private HelperService hs;
public void someMethod() {
List<String> names = new ArrayList<>();
hs.addValues(names);
if(names.size() < 5) {throw new RuntimeException("Invalid names list");}
return;
}
}
public class HelperService {
public void addValues(List<String> names) {
names.add("alex");
names.add("harry");
names.add("james");
names.add("maria");
names.add("bob");
}
}
我知道这是一个人为的例子,但我有一个类似的用例,我无法修改现有代码。我想使用 Junit、Mockito 对 Example 类进行单元测试。如何测试names.size() 的异常情况
【问题讨论】:
-
在您的测试中注入一个模拟 HelperService(它会添加更少的名称)。
-
或者甚至只是扩展 HelperService 并覆盖该方法,然后注入您的扩展。甚至不需要在这里嘲笑。
-
扩展是什么意思?你能详细说明一下吗?我打算使用 Junit 和 Mockito 编写一个 UNIT 测试来模拟外部依赖项。
-
添加示例作为答案。
-
另外,模拟外部依赖并不总是必要的。当类足够简单时,有时只需提供不同的(通过下面显示的普通
extends选项)就足够了。
标签: java spring spring-boot junit mockito