java - 模拟类的构造函数内的方法

标签 java junit constructor mockito

我是mockito新手。假设我有一个这样的类(class)

public class MyClass {
    int a;
    String b;
    public MyClass(int a) {
        this.a = a;
        this.b = draw();
        System.out.println("class is created");
    }

    public String draw() {
        System.out.println("my");
        return "b";
    }

    public void apple() {
        System.out.println("apple");
    }
}

我正在使用 Mockito 编写 JUnit 测试,其中使用构造函数创建该类的对象。当我安装类时是否可以模拟draw()方法?

最佳答案

不清楚为什么您需要这里的Mockito。这是一个没有 Mockito 的解决方案。

在您的测试中创建一个带有重写 draw() 方法的 MyClass 实例:

final MyClass myClass = new MyClass() {
    @Override
    public String draw() {
        return "mock data";
    }
}

// Now test your class as you want

关于java - 模拟类的构造函数内的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46434282/

相关文章:

java - 如何在 Java Swing 中对表格中选中的组合框组件进行颜色渲染?

java - 捕获参数传递给 powermockito 中的 stub

java - 当一个类从抽象类扩展时,如何访问它的私有(private)变量?

c++ - 通用继承和复制构造函数

Java:通过进程控制浏览器

java - Java 中正则表达式随机匹配而不是引号周围

java - 构造函数初始化 : The assignment to variable length has no effect Warning

java - 结束 JUnit 测试

java.lang.IllegalStateException : no last call on a mock available with PowerMock and EasyMock

C++ 委托(delegate)构造函数