我正在研究TDD并且最近正在搜索如何正确地对私有方法进行单元测试。 Stack Overflow中的热门答案暗示:
根据评论部分的分歧,似乎每个人都有自己的规则。然后我发现这个tutorial site表明了一种相当大胆的方法。
private
方法protected
或package private
。将测试代码放在同一个包中。
设计可测试性意味着设计代码以便更容易测试。要做到这一点,你可能不得不打破我们在大学里学到的一些原则,比如封装。
尽管TDD的原则是为可测试性设计代码,但破坏封装对我来说听起来并不合适。这种方法是一个很好的方法吗?
答案 0 :(得分:2)
我认为正确的答案是:不要测试私有方法。 如果您觉得需要测试私有方法,可能会发生以下两种情况之一:
答案 1 :(得分:0)
如果您可以将Guava库添加为依赖项,则可以创建方法package private
并使用VisibleForTesting注释对其进行标记。
我假设您正在使用Java,但您没有明确说明。