为了账号安全,请及时绑定邮箱和手机立即绑定

单元测试的合理代码覆盖率是多少(以及为什么)?

单元测试的合理代码覆盖率是多少(以及为什么)?

HUH函数 2019-08-23 10:57:34
单元测试的合理代码覆盖率是多少(以及为什么)?如果你要求单元测试的最小代码覆盖率,甚至可能作为提交到存储库的要求,它会是什么?请解释你是如何得出答案的(因为如果你所做的只是选择一个号码,那么我本可以自己完成这一切;)
查看完整描述

3 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

如果100%覆盖率是您的目标(而不是对所有功能进行100%测试),则代码覆盖率是一种误导性指标。

  • 你可以通过一次击中所有线来得到100%。但是,您仍然可能错过测试命中这些行的特定序列(逻辑路径)。

  • 您无法获得100%但仍测试了所有80%/ freq使用的代码路径。测试每个'抛出ExceptionTypeX'或类似的防御性编程守卫你测试的是'很高兴'而不是'必须拥有'

因此,请相信自己或您的开发人员要彻底,并通过他们的代码覆盖每条路径。务实,不要追逐神奇的100%报道。如果您使用TDD代码,则应获得90%以上的奖金。使用代码覆盖来突出显示您错过的代码块(如果您使用TDD,则不应该发生..因为您只编写代码以进行测试通过。没有合作伙伴测试,代码就不会存在。)


查看完整回答
反对 回复 2019-08-23
?
动漫人物

TA贡献1815条经验 获得超10个赞

代码覆盖率很高,但功能覆盖率更高。我不相信我写的每一行。但我确实相信我想要提供的所有功能的100%测试覆盖率(即使是我自己带来的超酷功能,也没有在会议期间讨论过)。

我不在乎我是否会有测试中没有涉及的代码,但我会关心我是否会重构我的代码并最终有不同的行为。因此,100%的功能覆盖是我唯一的目标。


查看完整回答
反对 回复 2019-08-23
  • 3 回答
  • 0 关注
  • 4698 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信