我有一个需要测试的integrator类,该类构造函数实例化了一个服务客户端。由于服务客户端是一个外部依赖项,我想测试集成商的个人责任。代码如下所示。
public class Integrator {
Client client;
public Integrator() {
client = new RemoteClient();
}
public String invokeClient() {
....
}
}
嘲笑这件事的最佳方式是什么?此外,我需要确保代码覆盖率。
使用依赖注入,这样就不会创建客户端:
public Integrator(Client client) {
//... argument checking omitted
this.client = client;
}
现在,您的测试可以创建可以直接传入的模拟客户端。
您仍然可以保留无参数构造函数:
public Integrator() {
this(new RemoteClient());
}