业务代码每行都需要单元测试覆盖吗?

2020-07-31 09:46:46 +08:00
 weo0
5304 次点击
所在节点    程序员
34 条回复
msg7086
2020-07-31 18:29:02 +08:00
最重要的是行为测试。单元测试看情况,本身分得太细的函数我觉得没必要精准覆盖。上层业务逻辑带到就行了。
PainAndLove
2020-07-31 21:56:57 +08:00
CY
huluhulu
2020-07-31 22:14:36 +08:00
我司要求
line coverage > 80%
branch coverage> 60%
kaneg
2020-07-31 22:25:40 +08:00
单元测试是开发人员在自己可控范围对自己的一种保护。除了一些极端的边界情况只有在生产环境才会出现,其他大多数情况都是可以通过单元测试来确保其行为是符合预期的。
你想,自己提交的代码上线后睡个安稳觉它不香吗?
nianyu
2020-07-31 22:55:37 +08:00
不需要
nznd
2020-07-31 23:01:48 +08:00
我司 想进测试系统需要 UT>40% 分支
想出测试系统,做 release 需要 UT>90% 分支 (好像不大于也没事 就是部门 boss 会被批 但是没人试过(
不过周期一般比较长 一个季度 release 一次 最长的两年多
lizytalk
2020-07-31 23:06:53 +08:00
@dilu 但是连行覆盖都保证不了不就是完全没有测试么...
Perry
2020-07-31 23:19:50 +08:00
工具齐全的话,100% 不难
dilu
2020-08-01 05:34:47 +08:00
@lizytalk 你覆盖了也不保证没有问题啊 覆盖率并不代表开发质量
scnace
2020-08-01 11:53:21 +08:00
写单测其实可以从侧面帮开发者更好地抽象代码模块
sariya
2020-08-01 11:56:44 +08:00
不存在的…比较独立的模块可以单测,大部分还是要集成测试,不然鸭子类要写到吐
mreasonyang
2020-08-01 15:23:13 +08:00
这要看你们有没有 QA 团队
changwei
2020-08-01 18:58:10 +08:00
看你的用户群体,如果是对内部做的系统,用户通常不会提交太奇怪的数据,那就没必要做,如果是对外做的系统,什么人都用,甚至可能会有黑客来攻击,那肯定得覆盖各种异常输入的逻辑。另外,通常做开发都是防御式编程吧,得假设用户提交数据都有可能是错误或者超范围超值域的情况。
fishCatcher
2020-08-02 01:11:36 +08:00
有些错误场景非常刁钻根本没法定义,或者说测试的时候根本想不到那里会出错,100%覆盖是不可能的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/694522

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX