V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
gowl
V2EX  ›  奇思妙想

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

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

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

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

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

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

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

    测试也分很多种,单元测试最简单,维护需要消耗一些时间,集成测试比较复杂,维护需要消耗亿点点时间,如果开发只有一个人,现实的问题是你根本没有多余的时间去维护测试用例,特别是集成测试。
    weixind
        12
    weixind  
       2023-01-10 20:22:10 +08:00
    @TabGre 写测试可以改变写代码的习惯。如果觉得测试不好写,一定程度上是代码结构还有优化的空间。
    intmax2147483647
        13
    intmax2147483647  
       2023-01-10 21:40:16 +08:00
    国内大部分大厂程序员都没有写测试的习惯,公司项目管理也没有写测试的要求,全都是依托答辩
    yikyo
        14
    yikyo  
       2023-01-10 22:05:26 +08:00 via iPhone
    单人项目写测试很有用,避免你修改一处之后引起其他的问题,第二可以快速验证,避免自己输入输出进行测试,还是很浪费时间的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2671 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:54 · PVG 19:54 · LAX 03:54 · JFK 06:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.