【问题标题】:Are these the sort of edge cases I should think of when using unit testing?这些是我在使用单元测试时应该考虑的边缘情况吗?
【发布时间】:2011-01-17 23:07:06
【问题描述】:

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

但是,这些是正确的吗?

  • 测试与数据库的连接未打开(断言抛出异常)
  • 断言必须始终有 >1 行的表这样做
  • 断言必填字段为 != null。
  • 断言已以正确的格式设置 ip(我可以将字符串解析为 IP)。

谢谢

【问题讨论】:

    标签: unit-testing junit nunit mstest


    【解决方案1】:

    您的测试看起来不错,但“极端情况”一词通常指的是您需要围绕输入限制进行的测试和检查。

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

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

    您可以看到您正在应用程序的周围和最有可能出现错误的边缘进行测试。在这种情况下,您可以存储的可用字符数量可能会有些混乱,这可能会导致应用程序写入您的数据库时出错。

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

    【讨论】:

    • 所以基本测试一下参数。因此,如果我的数据库查询带有一个参数,请围绕该参数进行测试(GUID 格式错误等)。但我想我上面写的测试还是不错的。
    • @dotnetdev - 这就是想法,是的,你的测试仍然很好。
    猜你喜欢
    • 2017-05-17
    • 2019-02-09
    • 2022-11-23
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多