有谁知道 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/