我最近开始意识到powermock的Whitebox功能.(总之,它允许您直接测试私有方法或直接从单元测试修改私有成员 - 同时保持私有!)
我知道除了可见方法之外,还有一些思想框架在单元测试之后不屑一顾,但是有时它只是想要一个简单的测试来确保深层辅助方法正在做它应该做的事情......没有经历可能是巨大的开销来准备父方法过滤到你的方法所需的参数和模拟......然后你只需要做魔法来提取内部方法的结果.简而言之,有时测试这些内部方法需要最复杂且难以遵循的单元测试.(而且,我们公司的政策是100%的单位测试覆盖率.这些方法必须经过测试!)
我知道一种方法是更改方法访问器以允许单元测试(例如,从更改private到protected,但powermock Whitebox允许直接测试而不更改源代码.
不过,妈妈总是说,"只因为你可以,并不意味着你应该这样做."
是否适合测试这样的内部方法?如果是这样,我应该使用的经验法则是什么?