为一个方法编写单元测试,该方法调用java中同一个类的其他私有方法。如何模拟私有方法

时间:2017-08-29 10:09:15

标签: java unit-testing junit mockito

假设我有一个A类,它有两种方法。我必须测试一个方法,它在内部调用另一个方法。

class A {
    private void method1() {
        //some steps to be done
    }

    public void method3() {
     //some steps
    }

    public void method2() {
        method1();
        if (XUtil.isSupportRequired) {
            method3();
        }
    }
 }

所以,如果我尝试测试method2,如何模拟method1,因为它不公开。 任何帮助,将不胜感激。 我正在使用junit和mockito。

1 个答案:

答案 0 :(得分:3)

我认为你应该尝试编写黑盒测试,也就是说,它应该不关心类内部只通过其公共接口可见的内容。

因此,通过应该反映这些效果的其他方法,或者通过过程中使用的模拟依赖项来测试方法2的效果。

你不应该嘲笑其他私人方法。