我需要专注于测试"public"方法还是"private" JUnit 测试方法?



大多数JUnit测试是为公共方法还是私有方法编写的?如果我没有那么多时间,我需要专注于什么?

您应该测试构成API一部分的所有内容。除非您使用反射,否则这意味着公共/受保护和包级别的方法。

显然,这是意见。但这是基于经验的。让我进一步谈谈我的看法。

理想情况下,您应该练习测试驱动的开发。在这种做法中,你:

  1. 首先编写测试,包括您希望拥有的测试主题的公共方法。这有助于您设计一个有用的API
  2. 然后,您只需编写足够的代码即可通过测试。这将使您获得100%的覆盖率,并且没有多余的代码
  3. 然后进行重构

在进入重构阶段之前,您可能甚至没有任何私有方法。

测试类的行为。从公共方法开始。如果您覆盖对象的所有状态,则很可能会覆盖私有方法。目标是100%州覆盖率(只是一个标记。在实际情况下无法实现)

取决于您的测试目标。理想情况下,您希望在100%覆盖率下测试所有这些:)

我怀疑你会看到很多私有方法四处浮动,也就是说,它们会出现在一个方法中,其中涉及的变量不应该在非常特定的情况下进行外部/外部修改。话虽如此,public和private的主要区别在于可访问性:private只能在类内访问,而public可以在类外访问。

相关内容

最新更新