java - 使用 powermock 测试构造函数

标签 java junit powermock

有谁知道 powermock 中的一种方法可以对构造函数进行单元测试并模拟构造函数调用的方法。

即我有一堂这样的课;

public class myClass {
    public myClass(){
        myMethod();
        // do other stuff
    }
    public void myMethod(){
        // do stuff
    }
}

我想要做的是为模拟 myMethod()myClass() 构造函数编写一个单元测试。

如果 myMethod() 是静态的,这会很容易,因为我可以使用 mockStaticPartial() 然后调用构造函数。

仅仅创建 MyClass 的部分模拟是行不通的,因为一旦我创建了模拟,调用构造函数就会创建一个新的 MyClass 实例,而无需 myMethod() 被 mock 。

有人知道有什么方法吗?

最佳答案

您不应该模拟正在测试的类。如果构造函数调用方法,则应在测试构造函数的过程中测试该方法的操作。如果该方法执行的操作超出了单元测试的范围,请模拟该方法用于执行“操作”的类。

如果你真的想用上面的方法来做,(我不推荐这样做)你可以创建一个被测试类的子类来重写该方法。 (这与约翰卡尔上面的精彩评论相悖)。

关于java - 使用 powermock 测试构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12409153/

相关文章:

java - 无法连接到 ssl 服务器收到致命警报 : certificate_unknown and ReadDataRecord(SSLSocketImpl

gradle - 使用 Gradle 对 JUnit 测试进行分组

java - 使用本地镜像测试 URI

spring-mvc - Junit测试方法中的模型参数

android - powermock 错误 java.lang.LinkageError : loader constraint violation: when resolving method "android. support.v4.app

java - 带有 MySql 的 Tomcat 7

java - 如何将 jpeg 图像转换为矩阵秩 2 数组以便模型进行预测(使用 deeplearning4j 库)

java - 无法使用 API 27 接收 BOOT_COMPLETED 操作

java - 如果其中一个是静态的,你能用 Mockito/PowerMock 模拟一系列方法调用吗?

java - 使用任何 Java 模拟框架模拟聚合