这些是我在使用单元测试时应该考虑的边缘情况吗?

时间:2011-01-17 23:07:07

标签: unit-testing junit nunit mstest

编写单元测试时,通常建议测试边缘情况。

然而,这些是正确的吗?

  • 测试与db的连接未打开(声明抛出异常)
  • 断言一个表必须始终具有> 1行,
  • 断言所需的字段是!= null。
  • 断言已经以正确的格式设置了ip(我可以将字符串解析为IP)。

由于

1 个答案:

答案 0 :(得分:5)

您的测试似乎没问题,但短语“边缘情况”通常是指您需要围绕输入限制进行的测试和检查。

假设您的数据库中有一列可以接受50个字符的列。您的边缘案例测试是:

  • 保存49个字符的字符串 - 成功
  • 保存一个包含50个字符的字符串 - 成功(或者因为空终止字符而失败,具体取决于您的语言)
  • 保存51个字符的字符串 - 失败

您可以看到您正在测试应用程序中最有可能出现错误的位置。在这种情况下,您可以存储的可用字符数量可能存在一些混淆,这可能会导致应用程序写入数据库时​​出错。

其他测试应该测试保存20个字符的字符串并保存100个字符的字符串(比如说),但这些测试会更稳定。