【问题标题】:Should I have redundant unit test我应该有多余的单元测试吗
【发布时间】:2019-01-13 07:37:23
【问题描述】:

例如,服务器会响应

{
   name: "mike",
   age: "12",
   sex: "male"
}

在我的代码中,我只使用名称,所以我的代码是 string name = json["name"];

对于我的单元测试,我的单元测试用例应该是上面的实际 json 结果还是只是

{
   name: "mike",
}

因为我只解析name 字段?

【问题讨论】:

    标签: unit-testing testing


    【解决方案1】:

    在编写单元测试时,您应该考虑每个测试的目的是什么。

    在您的示例中,一项测试的目标可能是测试您的代码是否从服务器结果中正确提取了名称。但是,由于键和值的处理是语言的一部分,您不必测试这是否适用于键和值的混合:表达式json["name"] 为您带来了真正的魔力。因此,您可以保持“伪”服务器响应非常简单——它不必像实际的服务器响应一样。也就是说,只使用{ name: "mike", } 就可以了。

    可能会有更多的测试用例,例如测试您的代码是否正确处理错误情况,例如,如果服务器响应的答案没有名称 - 或者有两个或多个名称 - 或者看起来完全乱码.同样,您必须定义一些“伪”服务器结果。

    然而,在某些时候,您将不得不针对实际服务器测试您的代码 - 然而,您将离开单元测试领域并进入集成测试。

    【讨论】:

      【解决方案2】:

      在单元测试用例中,实际结果为 { 名称:“迈克”, }

      【讨论】:

      • 但是包含冗余测试用例是不好的做法吗?由于服务器永远不会返回 { name: "mike"},即使它是多余的,包含实际结果是否是个好主意?
      猜你喜欢
      • 2012-04-23
      • 1970-01-01
      • 1970-01-01
      • 2016-07-23
      • 1970-01-01
      • 2011-01-01
      • 1970-01-01
      • 2010-10-05
      • 2017-07-26
      相关资源
      最近更新 更多