单元测试复杂逻辑

时间:2012-07-06 18:55:19

标签: unit-testing testing

对每个后置条件的测试与其他后置条件的测试非常相似的相对复杂的方法进行单元测试的最佳方法是什么?前置条件很容易单独测试,但是很多设置都要确保它们都能保持,以便可以测试后置条件。我想到的三种方式是:

  1. 创建一个可以一次测试所有内容的通用函数,但默认为最简单的场景。此函数将采用标志参数来指示与最简单方案的偏差。然后,为每个使用适当的标志调用该函数的后置条件(或组合)创建单元测试,以获得该后置条件的覆盖范围。这里的好处是几乎没有代码重复,所以如果被测试的代码发生变化,只需要重写一个测试函数;并且编写测试以涵盖后置条件组是微不足道的,但缺点是一般测试功能非常复杂
  2. 对最简单的场景进行单元测试,然后进行复制,粘贴和修改。好处是每个测试都非常简单。缺点是原始测试的问题需要修复粘贴的次数。
  3. 编写一个通用函数,它允许通过将函数作为参数来覆盖各种位和部分,但默认情况下测试最简单的场景。这些好处类似于带有标志的一般函数的好处,但我认为将它们全部网格化可能会更复杂。
  4. 第四个选项是“你做错了;把测试的方法分解成更容易测试的位!”

    有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我之前的评论有点开玩笑。

从广义上讲,我实际上提倡的是执行您列出的选项2,但随后重构您的测试代码以消除您通过复制修改工作创建的重复。

一旦您对此进行了全部测试,您就可以寻找重构生产代码的方法,将其分解为更小,更易于管理的部分,并使这些部分可重复使用。但在做出重大改变之前进行测试总是健康的。