对每个后置条件的测试与其他后置条件的测试非常相似的相对复杂的方法进行单元测试的最佳方法是什么?前置条件很容易单独测试,但需要进行大量设置以确保它们都成立,以便可以测试后置条件。我想到的三种方法是:
- 创建一个可以一次测试所有内容的通用函数,但默认为最简单的场景。该函数将采用标志参数来指示与最简单方案的偏差。然后,为每个使用适当标志调用该函数的后置条件(或组合)创建一个单元测试,以覆盖该后置条件。这里的好处是几乎没有代码重复,所以如果被测试的代码发生变化,只需要重写一个测试函数;并且编写测试来覆盖后置条件组是微不足道的,但缺点是一般测试功能非常复杂
- 对最简单的场景进行单元测试,然后复制、粘贴和修改。好处是每个测试都非常简单。缺点是原始测试的问题需要修复与粘贴的次数一样多。
- 编写一个通用函数,允许通过将函数作为参数来覆盖各种位和部分,但默认情况下测试最简单的场景。好处类似于带有标志的一般功能的好处,但我认为将它们全部啮合在一起可能会更复杂。
第四个选项是“你做错了;将被测试的方法分解成更易于测试的部分!”
有任何想法吗?