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

标签 java junit junit4 mockito powermock

我有一个需要测试的集成器类,类构造函数实例化一个服务客户端。由于服务客户端是外部依赖项,因此我想测试集成商的个人责任。代码如下所示。

public class Integrator {

    Client client;

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

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

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

最佳答案

使用依赖注入(inject),这样您就不会创建客户端:

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

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

您仍然可以保留无参数构造函数:

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

关于java - 模拟 JUnit 构造函数的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18432328/

相关文章:

java - 如何在 Java Junit 中测试异常

java - 从 TestSuite 类向 JUnit 测试传递参数

java - 当文档以小写 <!doctype 开头时, Karate HTML 解析抛出 SaxException

java - 将 Protocol Buffer 对象从文件加载到集合中

java - 如何从 XML 中删除不需要的标签

java - 如何设置Hadoop中MultithreadedMapRunner的线程数?

java - 如何使用 Junit 并行化同一 Selenium 套件的多个实例?

java - 如何使用 Mockito 实现复合对象

java - 验证场景的事务性 Spring Junit4 测试用例

java - 在 JUnit 测试中抛出所有异常是不好的做法吗?