如何在Junit中验证公共方法中私有方法的调用次数?

时间:2016-09-08 18:11:41

标签: java junit mockito private-methods public-method

public void publicMethod() {
  for (i=1;i<10;i++)
    privateMethod();
}

private privateMethod() {
    something...
}

我需要编写一个JUnit测试用例来验证privateMethod()被调用的次数。

1 个答案:

答案 0 :(得分:9)

你不应该这样做。您不编写单元测试来验证实现详细信息。

您的测试可确保您的公开方法履行合同。所以你断言返回的东西是预期的;或者对其他方法的后续调用给出了所需的输出。或者你期望调用抛出指定的异常。或者,第三个选项:您注入了模拟的对象;您稍后在验证模拟器看到您预先指定的方法调用

但编写测试用例来专门测试私有方法是非常糟糕的做法!