junit & java:测试非公共方法
2022-08-31 09:48:05
JUnit 只会在我的类中测试那些公共方法。如何对那些不受保护的(即私有的、受保护的)进行 junit 测试?
我可以通过不使用junit来测试它们,但我想知道junit标准方法是什么。
JUnit 只会在我的类中测试那些公共方法。如何对那些不受保护的(即私有的、受保护的)进行 junit 测试?
我可以通过不使用junit来测试它们,但我想知道junit标准方法是什么。
关于单元测试的一个思想流派说,你应该只能测试公共方法,因为你应该只对你的公共API进行单元测试,通过这样做,你应该在你的非公共方法中覆盖代码。您的里程可能会有所不同;我发现有时是这样,有时不是这样。
话虽如此,有几种方法可以测试非公共方法:
希望这有帮助。
与许多单元测试问题一样,测试私有方法实际上是一个伪装的设计问题。当我发现自己希望为私有方法编写测试时,我没有尝试做任何棘手的事情来测试私有方法,而是花一分钟时间问自己,“我需要如何设计这个,以便我可以通过公共方法对其进行彻底测试?
如果这不起作用,JUnitX允许测试私有方法,尽管我相信它仅适用于JUnit 3.8。