0

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

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

第四个选项是“你做错了;将被测试的方法分解成更易于测试的部分!”

有任何想法吗?

4

1 回答 1

2

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

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

一旦你对这一切都进行了测试,你可能会寻找重构生产代码的方法,将其分解成更小、更易于管理的部分,并使这些部分可重用。但在做出重大改变之前进行测试总是健康的。

于 2012-07-06T21:46:04.363 回答