一亩三分地

 找回密码 注册账号

扫描二维码登录本站

微信公众号
扫码关注公众号
留学申请号
扫码关注留学申请公众号
查看: 2952|回复: 32
收起左侧

[找工就业] Unit test到底有什么用?

  [复制链接] |只看干货 |求职(非面经), 找工就业, 码农类general, 工作信息
我的人缘0

升级   42.71%


分享帖子到朋友圈
a610062656 | 显示全部楼层 |阅读模式
本楼: 👍   100% (1)
 
 
0% (0)   👎
全局: 👍   92% (79)
 
 
7% (6)    👎

2011(7-9月)-CS本科+3个月-1年 | 校园招聘会|BayArea 码农类General实习@

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?注册账号

x
在实习的时候为我那个建的一个service写了不少unit test,但写的过程也让我疑惑。

有一些比如类似于filter的method,写unit test写不写都没什么用,感觉唯一的好处是有人不小心改了这个method会被这个test检测到?

另外一种就更烦人了,我当时做的AWS,很多method是call AWS的API的,但是在test里又不能真的call这种remote procedure call。要用mock。基本写这些method就是先call一遍,看看这些rpc return什么,然后再用mock来存这些return value当test用。
这些test写下来感觉就特侮辱智商·····

testing一般都这样吗?

评分

参与人数 1大米 +3 收起 理由
纷纷的人生呐 + 3 给你点个赞!

查看全部评分


上一篇:Tesla和Cisco,哪个实习写在简历上会更有吸引力
下一篇:大二学生实习如何准备
我的人缘0

升级   55.86%

tq5124 2020-11-28 12:38:12 | 显示全部楼层
本楼: 👍   100% (32)
 
 
0% (0)   👎
全局: 👍   100% (194)
 
 
0% (0)    👎
mock确实看上去很傻,因为通常大家都是先写test case,然后报错说缺少rpc,然后缺什么mock什么,这样一套下来很容易让人觉得这个头痛医头脚痛医脚,没啥大用。

其实正确的流程是,你脑子过一遍,这个test case需要什么样的rpc,然后先去mock,然后跑一边看看是否符合你的expectation,这样听上去是不是更合理?另外从reviewer的角度也是这样review,看看为什么需要这些mock,那些是合理的,那些是author为了省事/不小心/不正确的写上去的。保证mock的数量最小是很重要的,不然会掩盖很多问题。

再上一层,就是mock始终不能cover 真正的场景,那在mock之外设立一些integration test又是很有必要的,可能是在CI上自动跑的,可能是直接上prod的prober tests,这些不同的方案有不同的trade off,有不同的适合的场景,那些由unit test cover,哪些是integration,哪些是prober,这都是要考虑的。. From 1point 3acres bbs

最后回答“这些有什么用”,确实对你没什么用。。。写这个代码的人一般都会认为自己写的代码没有问题,所以testing一个是给reviewer看的,另一个是给Leaders看的。leaders可以很直观的看到组里的服务在跑,实时的看到那些有问题那些没问题,这是十分重要的。想象一下如果你是组里的负责人,底下的人(通常)level没你高,水平没你高,你怎么放心他们写的代码?就是testing。只要testing还在,就不会出大问题,小问题都是可以解决的。testing还在就意味着晚上可以睡安稳觉

评分

参与人数 14大米 +19 收起 理由
BladeLee + 1 赞一个
Juliette23 + 1 赞一个
DoctorZ + 1 赞一个
gongliheng + 3 给你点个赞!
externaldrive + 1 给你点个赞!
yangc22 + 2 给你点个赞!
zhangbaoquan + 1 赞一个
armu + 1 赞一个

查看全部评分

回复

使用道具 举报

我的人缘0

升级   10.29%

本楼: 👍   100% (23)
 
 
0% (0)   👎
全局: 👍   95% (1241)
 
 
4% (53)    👎
这种test是一种对feature的ensurance. 避免之后有人改动 无意间影响了function的功能

这也算一种用处

unit test并不只是debug 和 test你开发时候的code

评分

参与人数 5大米 +7 收起 理由
externaldrive + 1 很有用的信息!
armu + 1 赞一个
charcoal_ + 3 赞一个!
海绵宝宝 + 1 赞一个
royh + 1 赞一个

查看全部评分

回复

使用道具 举报

我的人缘0

升级   41.86%

redhairdragon 2020-11-28 12:24:38 | 显示全部楼层
本楼: 👍   100% (14)
 
 
0% (0)   👎
全局: 👍   98% (1186)
 
 
1% (20)    👎
有可能别人再加一个新功能的时候把你的feature 搞坏了了.
还有个经常发生在我自己身上的,有时候发现个问题,急急忙忙的把现在的问题解决了,却没想到最基本的case没有过..

评分

参与人数 1大米 +1 收起 理由
armu + 1 赞一个

查看全部评分

回复

使用道具 举报

我的人缘0

升级   0.57%

本楼: 👍   100% (2)
 
 
0% (0)   👎
全局: 👍   99% (119)
 
 
0% (1)    👎
第二种unit test的作用是保证你的API都被用正确的param call过,主要是在测你自己service的逻辑,mock dependency肯定是必须的
回复

使用道具 举报

我的人缘0

升级   77%

本楼: 👍   100% (3)
 
 
0% (0)   👎
全局: 👍   88% (16)
 
 
11% (2)    👎
如果method里面除了调用其他API以外没有别的内容,那unit test意义确实不大
回复

使用道具 举报

我的人缘0

升级   43%

本楼: 👍   66% (14)
 
 
33% (7)   👎
全局: 👍   76% (110)
 
 
23% (34)    👎
别动不动就说侮辱智商这种话,别戾气那么重,你有这种想法是因为你经验不够,也没做过什么项目,存在都有他的合理性,好好思考,虚心学习吧
回复

使用道具 举报

我的人缘0

升级   42.71%

 楼主| a610062656 2020-11-28 12:20:14 | 显示全部楼层
本楼: 👍   100% (3)
 
 
0% (0)   👎
全局: 👍   92% (79)
 
 
7% (6)    👎
liuzhongda 发表于 2020-11-28 12:15
别动不动就说侮辱智商这种话,别戾气那么重,你有这种想法是因为你经验不够,也没做过什么项目,存在都有他 ...

对不起,当时写得时候会想起当时的情绪就不小心用词过重了
回复

使用道具 举报

我的人缘0

升级   10.86%

本楼: 👍   100% (6)
 
 
0% (0)   👎
全局: 👍   100% (194)
 
 
0% (0)    👎
tq5124 发表于 2020-11-27 20:38:12
mock确实看上去很傻,因为通常大家都是先写test case,然后报错说缺少rpc,然后缺什么mock什么,这样一套下来很容易让人觉得这个头痛医头脚痛医脚,没啥大用。

其实正确的流程是,你脑子
写的好。test driven development相信大家都学过或者听说过,但真这么执行的却不多。更可惜的是楼主的组里写代码的人本身没有写基本的unit tests却让别人来补上。tests除了写给上述两类人之外,更重要的是写给未来的人。service越写越复杂,你不能控制未来的人一定会沿用你的思路或者重用同样的api。假如五年后懂的人全走了,如何保证新来的人在啥也不懂的情况下行看似简单的代码不会break任何东西?如果连unit tests都没有的话,新来的人马马虎虎又没local跑起来测一下,那可能要到prod才会被发现了。越是简单觉得不可能出错的地方,万一真出了问题反而不容易被发现。

经验之所以是经验,都是由教训总结出来的。unit tests的目的是宁可错杀一千不要放过一个。越早发现问题成本越低。多写几十个tests要远好过fix a prod issue。
回复

使用道具 举报

我的人缘0

升级   25.57%

本楼: 👍   100% (4)
 
 
0% (0)   👎
全局: 👍   97% (367)
 
 
2% (10)    👎
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

隐私提醒:
■拉群请前往同学同事飞友|拉群结伴版块,其他版块拉群,帖子会被自动删除
■论坛不能删帖,为防止被骚扰甚至人肉,不要公开留微信等联系方式,请以论坛私信方式发送。
■特定版块可以超级匿名:https://tools.1point3acres.com/thread
■其他版块匿名方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

手机版|||一亩三分地

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

Some icons made by Freepik from flaticon.com

快速回复 返回顶部 返回列表