一种方法的正负单元测试是否应进行单独测试?

时间:2011-10-28 13:04:43

标签: unit-testing

比如说,我有一个检查有效英国邮政编码的方法。我已经为该方法编写了一个单元测试,用于测试何时传入正确的UK邮政编码,该方法返回true。

我应该创建一个单独的单元测试来测试不正确的英国邮政编码,还是在相同的单元测试中进行测试?

由于

3 个答案:

答案 0 :(得分:5)

您应该为每个案例创建单独的测试用例。这将使您相信任何调用此方法的未来代码都可以工作,如果您重构,您可以确切地看到哪个测试失败,而不是仅仅看到1test失败并且不知道原因。

答案 1 :(得分:1)

就个人而言,我会写一些测试,检查它是否可以正常使用不同类型的有效邮政编码(NE1 2XX,NE21 2XX,E1 3YY等,尝试不同的有效字符和数字组合)和几个失败的测试不同类型的无效(例如NEI 3XX)。

答案 2 :(得分:1)

我用来做的是创建两个函数,比如test_valid_data()test_invalid_data(),以及两个数据集,比如valid_data[]invalid_data[]。然后我写了四个测试程序:

  • test_valid_data(valid_data []):此测试应通过
  • test_valid_data(invalid_data []):此测试应失败
  • test_invalid_data(valid_data []):此测试应失败
  • test_invalid_data(invalid_data []):此测试应通过

这样工作可以让您根据特定的数据集查明失败的测试。只有一项重大考验,这种行为很难实现。它还验证有效数据不被视为无效,反之亦然。