我正在为我的一个应用程序编写单元测试,作为一个好的实践,我试图使类中的所有方法尽可能私有化,因此我可能最终得到的类大多是私有方法,很少是公共方法,有时还会调用静态方法(我的其他类或一些textutil等)。
我想知道如何测试所有只依赖mockito和junit的类,因为robolectric和powermockito似乎扩展了单元测试中应该做的事情的范围。我应该忽略所有私有和静态方法以及偶然调用某些静态或私有方法的公共方法吗?或者怎么做?
最佳答案
您要测试的类中的所有私有方法都应该由某些公共/受保护/包私有方法调用;否则它们是未使用的代码。所以,只需集中精力测试这个对应用程序的“客户端代码”可见的公共api。内部(私有方法)将作为副作用进行测试/覆盖,因为它们实际上实现了api指定的公共契约。
直接测试实现细节(私有方法)将使测试更难维护,被测试的代码更难重构。