用powermock测试构造函数

时间:2012-09-13 14:57:08

标签: java junit powermock

有没有人知道powermock的方法你可以对构造函数进行单元测试并模拟构造函数调用的方法。

即。我有这样的课程;

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

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

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

只是创建一个MyClass的部分模拟也无法工作,因为我创建了我创建它的模拟器,此时调用构造函数只会创建一个没有myMethod()的MyClass的新实例嘲笑。

任何人都知道吗?

1 个答案:

答案 0 :(得分:2)

你不应该嘲笑一个被测试的课程。如果构造函数调用方法,那么应该测试方法的操作作为测试构造函数的一部分。如果该方法执行超出单元测试范围的内容,则模拟方法用于执行“填充”的类。

如果您真的想用上面的内容(我不推荐这样做),您可以在测试中创建一个覆盖该方法的子类。 (这违背了johncarl上面的优秀评论)。