我有一个需要测试的集成器类,类构造函数实例化一个服务客户端。由于服务客户端是外部依赖项,我想测试集成商的个人责任。代码看起来像这样。
public class Integrator {
Client client;
public Integrator() {
client = new RemoteClient();
}
public String invokeClient() {
....
}
}
什么是嘲笑这个的最好方法?另外,我需要确保代码覆盖率。
答案 0 :(得分:1)
使用依赖注入,因此您不创建客户端:
public Integrator(Client client) {
//... argument checking omitted
this.client = client;
}
现在,您的测试可以创建可以直接传入的模拟客户端。
你仍然可以保留no-arg构造函数:
public Integrator() {
this(new RemoteClient());
}