是否需要测试公共内部类?

时间:2012-01-12 09:41:45

标签: java unit-testing junit

我应该测试公共内部类的公共方法吗?或者我应该测试外部类公共方法,它使用内部类(与测试私有方法相同的方法)?

4 个答案:

答案 0 :(得分:3)

您需要测试从课堂外可以访问的所有内容。这包括内部类的公共方法(无论类本身是公共还是私有)。

如果您正在公开方法,则需要对其进行测试。

答案 1 :(得分:3)

如果外部类方法仅将调用委托给内部类1,则可以只测试其中一个。哪一个并不重要。在这种情况下,你可能想重新考虑你的设计 - 过度的委托意味着我的经验设计不好。

如果外部类方法除了调用内部类方法之外还执行其他重要操作,那么您应该像这样单独测试它们:

  • 测试内部类方法
  • 使用内部类方法模拟外部类方法(如果可能)
  • 测试外部类方法

答案 2 :(得分:2)

没有“必需”。您需要进行合理的测试,但要关注功能测试,而不是线条覆盖:您的代码所做的一切都应该以某种方式进行测试。

如果内部类方法中存在任何业务逻辑,那么它可能有助于直接测试这些逻辑(并将内部转换为顶级类)。根据它的作用,测试外部可能就足够了,如果你这样做,你会在测试覆盖率中引入耦合,但由于类是一个内部类,所以耦合已经存在了。

答案 3 :(得分:0)

您应该测试您的课程是否满足他们的所有要求,无论这些要求是如何实施的。不要为每种方法编写测试;相反,根据已实施的要求,以及每个要求是否涵盖不同的案例,计算出您需要的测试。无论您是编写内部类,私有方法等都与测试过程无关。