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

“太简单而无法打破”有多简单解释

  •  3
  • Dan  · 技术社区  · 14 年前

    在JUnit FAQ中,您可以 read

    6 回复  |  直到 14 年前
        1
  •  3
  •   Kristopher Johnson    14 年前

    我认为“不能自行中断”意味着该方法只使用自己类的元素,而不依赖于任何其他对象/类的行为,或者它将其所有功能委托给其他方法或类(可能有自己的测试)。

    基本思想是,如果您可以看到该方法所做的一切,而不需要引用其他方法或类,并且您非常确定它是正确的,那么测试可能是不必要的。

        2
  •  2
  •   Lunivore    14 年前

    如果你认为人们可以安全地修改你的代码,你就不必担心了。

        3
  •  1
  •   Casebash    14 年前

        4
  •  1
  •   OscarRyz    14 年前

    你将测试可能失败的东西。例如,把一个罐子放在桌子上,或者坐在桌子上,或者在房间里把桌子从一边推到另一边,等等。你在测试桌子,用一种你知道它很脆弱的方式,或者至少用一种你知道你会使用它的方式。

    不过,你不需要测试指甲或它的一条腿,因为它们“太简单了,不能自己折断”。

    我希望这有帮助。

        5
  •  1
  •   Martin Wickman    14 年前

    如果您使用的是TDD,那么这个建议是错误的。在TDD情况下,函数存在 因为

    但是,如果您在之后将测试添加到一些现有代码中,我可以理解这样一个论点,即您不需要测试无法中断的代码。但我仍然认为这只是不必编写测试的借口。还要问问自己:如果那段代码不值得测试,那么可能根本不需要那段代码?

        6
  •  0
  •   chiccodoro    14 年前

    我喜欢这个 risk based approach of GAMP 5 这基本上意味着(在本文中)首先评估软件的各种可能的风险,并且只为高风险部分定义测试。

    尽管这适用于GxP环境,但它可以通过以下方式进行调整:某个类有多大可能有错误的方法,以及错误的影响有多大?例如,如果一个方法决定是否允许用户访问某个资源,那么您当然必须对其进行足够广泛的测试。

    这意味着在确定“太简单而无法打破”之间的界限时,考虑潜在缺陷的可能后果会有所帮助。