我是否需要专注于在JUnit测试中测试“公共”方法或“私有”方法?

时间:2012-03-23 05:34:01

标签: java testing junit

是为公共方法或私有方法编写的大多数JUnit测试吗?如果我没有那么多时间,我需要关注哪一个?

4 个答案:

答案 0 :(得分:4)

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

显然,这是意见。但它是基于经验的。让我进一步发表意见。

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

  1. 首先编写测试,其中包括您希望拥有的测试主题的公共方法。这有助于您设计有用的API。
  2. 然后您编写足够的代码以使测试通过。这将使您获得100%的覆盖率,并且没有无关的代码。
  3. 然后你重构。
  4. 在进入重构阶段之前,您可能甚至没有任何私有方法。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

我怀疑你会看到很多私人方法浮出水面,据说,它们将出现在一种方法中,所涉及的变量不应在非常具体的情况下在外部/外部修改。话虽如此,公共和私人之间的主要区别在于可访问性:私有只能在类中访问,而公共可以在类之外访问。