个人开发者写单元测试的人多吗?

2023-03-24 09:19:04 +08:00
 debugger0
写了单元测试的话,覆盖率有多少?如果单元测试覆盖率 100%的话,基本可以保证极低的线上 bug 量吗?
5737 次点击
所在节点    程序员
58 条回复
wyl986
2023-03-24 09:26:40 +08:00
必写单元测试,必 100%。单元测试并不能保证极低的 bug 率(写的时候也确实能找到一点),对我而言,单元测试最大的目的是为了自己 /别人 n 年之后维护的时候能看懂写的啥,改了一个地方不至于导致其他的地方跑不起来。找 bug 还是要专门的测试来
ql562482472
2023-03-24 09:27:24 +08:00
我个人的问题是我不理解什么叫单元测试 测试类我是会写的,但是单不单元就很难说 都拆小方法了 写全乎 Mock 要写非常多
kidult
2023-03-24 09:37:31 +08:00
更多时候是保证改动时的带来的影响,尤其是对于接手的人来说
akring
2023-03-24 09:38:18 +08:00
对于没有 QA 兜底的个人开发者来说,单元测试是唯一的质量保障了
LeegoYih
2023-03-24 09:42:13 +08:00
我一般写单元测试不保证覆盖 100%,主要是为了过冒烟测试。
保证无 BUG 还是要写一份测试用例,然后逐个测试,有改动需要对可能影响的范围进行回归测试。
runinhard
2023-03-24 09:45:31 +08:00
单测对个人开发者来说主要意义 2 点:合理的代码设计(不至于无法或者不好写单测);核心模块核心逻辑质量。

否则还是写 E2E 测试吧,性价比比较高。
zhuzhibin
2023-03-24 09:56:47 +08:00
@runinhard 别把,维护成本高啊,如果业务迭代快的话,可想而知
jsq2627
2023-03-24 09:58:30 +08:00
我倒是觉得恰恰相反
在公司写了无数单元测试后,给我的感觉是单元测试的意义,只有在别人也会参与修改同一份代码的时候有用,或者在依赖升级 green keeping 时候给人一点信心。
作为个人开发者独立开发项目的话,单测意义就体现不出来,而且还要花费大量时间维护单测(公司要求严格,平时写代码和写单测时间我感觉有 2:1 )。而且作为个人项目,项目的生命周期可能还轮不到单测发挥意义就结束了。
icyalala
2023-03-24 10:13:55 +08:00
@wyl986 100% coverage 很难搞,比如磁盘满了、内存分配失败了这类一般情况下不会出现的 branch 进不去,非要搞得 hook 系统函数。。
JeffyChen
2023-03-24 10:20:41 +08:00
写 e2e 测试
runinhard
2023-03-24 10:44:11 +08:00
@zhuzhibin 迭代快啥成本都高啊。
msg7086
2023-03-24 10:46:48 +08:00
我主要写集成测试。开发 SPA 比较多,所以针对 API 测。
uiosun
2023-03-24 10:47:14 +08:00
路过,不写,只写接口测试。

WebServer 项目里,单元测试太费时间。
enchilada2020
2023-03-24 10:49:35 +08:00
理智上是觉得需要的 这玩意跟注释同样重要
感情上是不爱写的 毕竟人都懒
WngShhng
2023-03-24 10:59:21 +08:00
写单元测试+接口测试,算是一种保障应用质量的手段,而且从长远来看,下次改动的时候跑一下脚本就能确定改动是否影响原来的逻辑,好处还是挺多的
Jammar
2023-03-24 11:11:03 +08:00
测试必写,但是只保证主流程,百分百覆盖太花费时间了,不值得
beimenjun
2023-03-24 11:20:07 +08:00
个人理解:绝大多数项目没有 UT 的必要。

如果是个人做社区贡献,比如做基础组件、参与开源项目,受众不确定,那自然是有必要上 UT 的。毕竟开源项目很容易别人也要提代码,怎么确认代码能不能 merge ,很多时候 UT 绕不开的。

但如果是个人做一些面向大众的服务想要盈利,那投入时间之前得讲究投资回报比,因为时间不仅仅要做开发,还要做运营或者宣传的话,UT 个人觉得属于不太重要也不太紧急的部分,开发人员在一开始的时候保持一个比较好的状态和开发习惯并且避免摊子铺太大,可能对项目的质量影响更大,太早上 UT 是一种资源浪费,而且 UT 也完全可以等到真的盈利了再补。

当然如果是给别人做的话,看合同条款和个人偏好了。
ivvei
2023-03-24 11:38:07 +08:00
不写,没什么意义。
hhjswf
2023-03-24 12:06:19 +08:00
bug 跟单不单测没直接关系呀,关键还是用例够不够完备,否则还是形式主义
ssynhtn
2023-03-24 12:15:05 +08:00
根本就没人写单元测试

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

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

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

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

© 2021 V2EX