模拟JUnit的构造函数的最佳方法是什么?

时间:2013-08-25 18:35:36

标签: java junit junit4 mockito powermock

我有一个需要测试的集成器类,类构造函数实例化一个服务客户端。由于服务客户端是外部依赖项,我想测试集成商的个人责任。代码看起来像这样。

public class Integrator {

    Client client;

    public Integrator() {
      client = new RemoteClient();
    }

    public String invokeClient() {
      ....
    }
}

什么是嘲笑这个的最好方法?另外,我需要确保代码覆盖率。

1 个答案:

答案 0 :(得分:1)

使用依赖注入,因此您不创建客户端:

public Integrator(Client client) {
    //... argument checking omitted
    this.client = client;
}

现在,您的测试可以创建可以直接传入的模拟客户端。

你仍然可以保留no-arg构造函数:

public Integrator() {
  this(new RemoteClient());
}