写测试可能是单枪匹马的开发者的最可靠的技术保障

2023-01-10 08:40:38 +08:00
 gowl
3326 次点击
所在节点    奇思妙想
14 条回复
fyooo
2023-01-10 08:43:15 +08:00
也是大规模协作开发的最可靠技术保障~
QlanQ
2023-01-10 08:47:06 +08:00
我是菜鸡,真的想问下,网络请求的接口,怎么写测试,数据是怎么造的
如果接口数据有关联如何处理
jameslam
2023-01-10 08:54:54 +08:00
@QlanQ 前端的话 jest 有 mock 接口的 API ,其他语言同理。看你什么测试,集成测试的话 mock 接口,E2E 用真实接口
MuscleOf2016
2023-01-10 08:57:13 +08:00
@QlanQ 有单独的接口测试框架或者工具,专门去测接口逻辑什么的,基本只是针对后端接口的。一般这种工具都支持接口关联测试,类似登录返回的信息保存到一个变量,然后下一个接口引用这个变量。然后断言或者其他什么判断接口返回数据是不是满足预期。。
Rocketer
2023-01-10 09:18:37 +08:00
@QlanQ https://jestjs.io/docs/mock-function-api#mockfnmockreturnvaluevalue

作为单元测试,除了被测的方法用真实代码以外,其他依赖(包括同一个类中的其他方法)都应该是模拟的,或者只测试调用其他依赖时的参数是不是预期的。不能因为其他依赖出错导致你的测试失败,否则就不叫单元测试了。

所以一个好的测试程序里面一半以上代码都是在模拟,初学很头疼,学会了很香。
zzm88104
2023-01-10 09:27:12 +08:00
个人开发者,所写项目(规模都是比较小的)从不写程序测试,只是自己手工真人测试。

请问这个在项目中一般会花多少时间?带来多少好处?值得我投入时间学习吗?

谢谢
makelove
2023-01-10 09:57:35 +08:00
手工测试一个复杂算法,也得打开 console 一次次调用这个函数,再比对结果,然后改了下算法,再手工做一遍,这效率。。。其实写个单元测试和手工测试一遍工作量差不太多。

对于我自己的 web 项目我只对少部分复杂工具函数 /算法之类写写单元测试,其它的我还是喜欢直接写集成测试,不要写模拟对象隔离测试对象,那个累且对个人项目意义不大,直接对 api 写 http 测试,再查数据库比对结果,这样一个项目的测试代码很少但收到了最大效果。
WngShhng
2023-01-10 11:35:30 +08:00
同意,特别是下次做大规模重构的时候,跑一下测试用例就可以,对于严谨的开发,测试是第一道保障
TabGre
2023-01-10 13:42:10 +08:00
前端方面如何编写有效的测试 ,个人感觉只有工具函数可以测试
kele999
2023-01-10 17:09:17 +08:00
不然呢,不测试直接生产吗
hst001
2023-01-10 18:17:00 +08:00
理想很丰满现实很骨感。

测试也分很多种,单元测试最简单,维护需要消耗一些时间,集成测试比较复杂,维护需要消耗亿点点时间,如果开发只有一个人,现实的问题是你根本没有多余的时间去维护测试用例,特别是集成测试。
weixind
2023-01-10 20:22:10 +08:00
@TabGre 写测试可以改变写代码的习惯。如果觉得测试不好写,一定程度上是代码结构还有优化的空间。
intmax2147483647
2023-01-10 21:40:16 +08:00
国内大部分大厂程序员都没有写测试的习惯,公司项目管理也没有写测试的要求,全都是依托答辩
yikyo
2023-01-10 22:05:26 +08:00
单人项目写测试很有用,避免你修改一处之后引起其他的问题,第二可以快速验证,避免自己输入输出进行测试,还是很浪费时间的

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

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

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

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

© 2021 V2EX