代码之家  ›  专栏  ›  技术社区  ›  Mark

单元测试课程的最大长度?

  •  11
  • Mark  · 技术社区  · 16 年前

    我使用JUnit和为我正在测试的每个类设置一个XXXTest类的标准做法。今天在编写一些测试时,我注意到测试类即将达到10000行。

    关于单元测试课程的最大长度,是否有一些最佳实践?我应该把我的单元测试课分成多个班吗?

    4 回复  |  直到 16 年前
        1
  •  5
  •   Rich Seller    16 年前

    你的单元测试应该尽可能详细,以达到你对代码所需的信心水平。

    我想说,如果你的测试类型那么长,很可能是因为你有很多设置/拆卸样板,这可能表明你需要抽象一些协作者(例如使用接口和模拟),或者引入一些测试辅助方法来重构样板。 这也可能表明你的类型做得太多,需要重构。

    如果你重构类型,你可能会看到相应的测试类型也会变小。

        2
  •  4
  •   Kelly S. French    16 年前

    这取决于这是否实际上是被测类(CUT)做得太多的暗示。如果是这样,那么显而易见的答案是重构CUT,这意味着相应地划分测试类。否则,如果要覆盖的不同场景的数量如此之多,方法的数量可能并不重要。

    10K行有点多,所以下一个问题是,你是否可以重构测试以创建私有助手方法来清除任何重复的代码,使用对象母亲或Mocking来减少重复等。要么是这样,要么你正在测试相同的场景,比如用1+1、2+2和3+3测试sum(),它们不是边缘情况。

        3
  •  1
  •   Brian Agnew    16 年前

    也许这表明你的受试班级本身太大,和/或可能做了太多事情?你能把这个类分解成不同的定义良好且自包含的组件吗?

        4
  •  1
  •   bwf93 bwf93    16 年前

    听起来你要测试的班级太大了。你的单元测试应该专注于测试一个类,如果这个类有太多的功能,需要10000行的单元测试,那么它就需要被拆分。通常,如果一个类接近200行,你需要将其重构为几个类。