V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  nine  ›  全部回复第 7 页 / 共 35 页
回复总数  681
1 ... 3  4  5  6  7  8  9  10  11  12 ... 35  
2021-12-14 16:08:19 +08:00
回复了 RuLaiFo 创建的主题 程序员 单元测试有必要吗?
@l00t
这不是自动化测试兄弟。这就是单元测试。

自动化测试是把肉测自动化。
2021-12-13 19:54:15 +08:00
回复了 RuLaiFo 创建的主题 程序员 单元测试有必要吗?
@l00t

所以说大部分开发都不知道“写单元测试”这个需求哪里来的。

你想象一下自己是软件发布员。你要对线上的软件发布一个小版本,只是一点 bugfix 。这种发布频率可能是 1 周 2 次,甚至初期 bug 不断,每天都会 fix 。

这时候不可能每次发布都要求测试人员把系统所有功能肉测一遍。但是 bug 得修,修了又不能不发。
你怎么知道别人修改的代码不会产生更大的 bug ,甚至把系统搞崩?
软件里面可能几万条逻辑,你想人肉全部测一遍几乎是不可能的。

在人肉检查关键点前,先跑一遍整体项目的测试代码。如果 A 写的代码,由 B 调用或者 C 继承。那么 A 的代码的改动有可能导致 B 和 C 出现 bug ,而他们不一定能做好整体的检查。也有可能 A 的代码是 D 改的,D 改的时候不清楚业务场景,认为没问题就发布了代码,也有可能 B 或 C 没时间仔细检查,也有可能 B 或 C 离职了,想问也没得问。

这时候几万个逻辑的单元的测试就起到了作用,帮助你快速的“初步”判定有没有问题,如果有问题,尽快打回去重新 debug 。要注意,仅仅是“初步”判定,后面对关键点该有的肉测还要有。但是这个初步过滤就能解决很多问题。稍微负责任点的开发,发布(不是提交)自己的代码前,就应该自己把所有测试跑一遍,进行初测。

而且“单元测试”并不是说最小粒度到 method 的这种才叫“单元测试”,单元要看你怎么拆。业务单元也是单元,只要这个流程中间不间断,没有异步,有明确的 input 和 ouput 就可以作为一个单元。你甚至可以不用在最小粒度写单元测试,只对拆分好的业务单元去写测试。


懂不懂单元测试,是程序员水平的一个分水岭。
招聘的时候只要问他对单元测试的理解,基本就能判断他开发水平怎么样了。
不知道单元测试的是票友。听说过没写过,或写过说不出所以然的是初级。而写过单元测试但强烈认为单元测试没用的,这种直接过滤掉。

并不是说程序一定要写单元测试。
1 不太复杂,且对不稳定库依赖不强的程序,可以不写,人肉就可以很快完成 debug 。
2 对质量要求不高的程序,主要是低价外包程序,这种写一句测试都是浪费时间。
3 验证 idea 类的程序,写出来只是为了给自己或者是别人看一下。
4 变动频繁的程序,创业的项目,业务流程经常发生摆动,而每一次重构,可能都是大刀阔斧结构性修改的。这种可能测试刚写完,代码就废了。这种如果成员开发水平一般,测试还是要写的。但是尽量不要去 TDD ,有可能致命。

前三种,基本写一下注释就好了。
第四种,如果开发者有很强的记忆力、控制力和责任心,对软件(自己开发的部分)每个细节都了然于心,每次修改代码都能严谨的去敲定需求和自测,可以不写。
2021-12-13 14:51:49 +08:00
回复了 zzyyqq 创建的主题 Ruby on Rails 大家写 ruby on rails applications 的时候一般怎么写前端页面?
目前线上项目用的 Rails6+webpacker ,前端 VUE+AdminLTE 。路由用的 Rails 的,不喜欢前端那套路由。
2021-12-13 14:38:45 +08:00
回复了 RuLaiFo 创建的主题 程序员 单元测试有必要吗?
@l00t
所以你要跑的是别人的单元测试,别人跑的是你的。

代码发布前,把所有测试都跑一遍,看看你改的代码,有没有让别人的代码蹦掉。

你写的单元测试主要是让别人跑的,别人写的是让你跑的。
2021-12-13 00:20:59 +08:00
回复了 RuLaiFo 创建的主题 程序员 单元测试有必要吗?
高质量的软件,必须要有单元测试。

没改过线上运行中的复杂的项目,一定不知道单元测试的意义。
改过线上运行中的复杂的项目,也未必知道单元测试的意义。

如果一个项目很复杂,那么在修改局部的时候,很有可能牵一发而垮全身。你不会知道项目里有多少代码调用你,或是继承你。

如果改的是别人的代码,没有单元测试,改完直接上线,后果不堪设想。如果恰巧是个金融项目,分分钟能让你公司破产。

当然,你的需求方可能并不要求你的代码质量。

而单元测试不等于 TDD ,事实上能真正合格的实施 TDD 的项目可能也就是 1%。
2021-12-09 15:04:22 +08:00
回复了 AndyAO 创建的主题 程序员 使用 git,既要用「命令行」也要用「UI」
SourceTree 很卡么?从来不觉得。
版本操作一天都用不到几次,真觉得卡可以试一下 Sublime Merge 。

相反,一直没搞明白使用频率那么高的 editor ,乃们居然能接受卡顿的 VSCode
晚了!已经冲了一年大会员。。
2021-12-01 17:24:19 +08:00
回复了 SteinsGate 创建的主题 ACG 只想下班回家看 jojo
不考虑钱的话,我想写赚钱的程序!
小弟妹
2021-06-17 17:06:28 +08:00
回复了 dididi9527 创建的主题 问与答 有不双击的无线鼠标推荐吗
2021-05-22 22:31:21 +08:00
回复了 awanganddong 创建的主题 编程 where in 和 where not in 怎么优化
好友和黑名单不是在中间表里存着的么?为什么要 in 呢?
2021-05-22 14:34:27 +08:00
回复了 Rxianbei 创建的主题 互联网 数码测评媒体 zealer 最近干嘛去了
刘翔:我退役了
2021-05-20 17:28:14 +08:00
回复了 noogler67 创建的主题 职场话题 基层工作选择, b 站和特斯拉
长远看选 Tesla 吧,去哪都是螺丝钉、业务仔,都接触不到核心。
外企的经历作用更大,不光是光环。
@johnsona 人家就是跟公司一个高薪员工沟通下,你想太多了吧?

果然是心思比较细腻,顾虑太多!

你是巨蟹座的还是双鱼座的?
给你翻译下?

“你薪资很高哟,超过公司普遍薪资体系了,不过千万别透露薪资啊啊啊,不然我们很难管理了,(你部门负责人会不服,有可能要闹腾,反正我就说一下,你 get 到就行了)。另外你得表现出和你薪资匹配的能力,第一天可能是和大家还不熟吧,以后要多表现表现哟!(不然我放你进公司,xx 总们也有可能奚落我,我面子挂不住)”

楼上那些分权、制衡、收买军心的不知道在想什么。
服务器部署在交易所同机房先
2021-05-04 01:44:37 +08:00
回复了 bemyself 创建的主题 职场话题 4k 屏相比 1080P 更护眼吗
4K 不会更护眼,只是 1080P 很毁眼而已。
2021-05-02 00:11:11 +08:00
回复了 K2 创建的主题 Apple 有人 Airpods 是单耳使用的吗?
听音乐的话不建议单耳,有损听力。
1 ... 3  4  5  6  7  8  9  10  11  12 ... 35  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5543 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 34ms · UTC 06:05 · PVG 14:05 · LAX 22:05 · JFK 01:05
Developed with CodeLauncher
♥ Do have faith in what you're doing.