V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
360
V2EX  ›  程序员

单元测试好处真有那么多吗,为啥我都感受不到,真可怕。

  •  
  •   360 · 2013-09-25 11:39:47 +08:00 · 4647 次点击
    这是一个创建于 3859 天前的主题,其中的信息可能已经有所发展或是发生改变。
    php开发,刚刚看了phpunit
    我的理解:单元测试就是写测试代码检查 被测试的单元 的结果是否符合预期。

    我自己写完函数,一般都先测试下这个函数的输出是不是正确的。单元测试跟这个差不多吧。
    18 条回复    1970-01-01 08:00:00 +08:00
    pengdu
        1
    pengdu  
       2013-09-25 11:46:26 +08:00   ❤️ 3
    等几个月以后,你要再修改这段代码,或者你修改一段已经离职的人的代码的时候,你就会感叹:有个单元测试多爽了。
    改完跑过单元测试,心里特别有底。
    maikcn
        2
    maikcn  
       2013-09-25 11:46:35 +08:00   ❤️ 2
    最大的好处是这个单元如果被修改了以后,通过跑测试就能发现是否会影响到原有的逻辑,是否和原来设计的预期保持一致
    georgetso
        3
    georgetso  
       2013-09-25 11:48:29 +08:00
    很早就知道TDD, 可是从来不用. assert用的多
    chenwl
        4
    chenwl  
       2013-09-25 11:48:37 +08:00
    你说的是开发调试手段,跟项目迭代维护的单元/集成测试 不一样咧
    shiny
        5
    shiny  
       2013-09-25 11:49:42 +08:00
    想借 lz 的帖子问下,单元测试里涉及数据库增删改(这个倒可以用测试数据库来实现)、远程第三方 API 调用(只有线上 API)这类影响线上的操作应该如何写单元测试?
    polythene
        6
    polythene  
       2013-09-25 11:51:12 +08:00
    对我来说它最大的好处就是确保我的更改没有影响到之前的逻辑
    EchoFUN
        7
    EchoFUN  
       2013-09-25 11:51:30 +08:00
    因为代码还没有达到一定的规模哦,亲。
    typing
        8
    typing  
       2013-09-25 11:51:53 +08:00
    单元测试, 虽然叫test, 但我觉得更多意义在于specification.

    它在重构/移植方面的作用已经不言而喻.

    那如果你说不重构, 不移植呢?
    我觉得它强制你写代码方式: 使其可测.
    maikcn
        9
    maikcn  
       2013-09-25 11:52:10 +08:00   ❤️ 1
    @shiny 单元外的测试用mocking
    henter
        10
    henter  
       2013-09-25 12:05:25 +08:00
    节省手动测试时间,特别是频繁迭代时

    或者处理比较难手动测试的功能
    chloerei
        11
    chloerei  
       2013-09-25 12:09:46 +08:00   ❤️ 3
    如果一个地方值得调试两次,那么就值得写成测试。
    angelface
        12
    angelface  
       2013-09-25 12:41:18 +08:00
    单元测试可以有效提产品质量,
    happypy1
        13
    happypy1  
       2013-09-25 15:16:35 +08:00
    一楼二楼正解。
    davepkxxx
        14
    davepkxxx  
       2013-09-25 15:20:06 +08:00
    单元测试还能告诉我这段代码是干什么的,因为注释通常都说得不够详细。
    lincats
        15
    lincats  
       2013-09-25 15:31:52 +08:00
    单元测试也教你怎么用别人的代码,这个常常很有用。呵呵。
    lightening
        16
    lightening  
       2013-09-25 15:37:02 +08:00
    有时候改一个功能可能会影响到其他地方的功能。难道你每次改一个东西,都把整个项目所有角落都测试一遍吗?这个即使可能,也会耗费巨大的人力。
    meta
        17
    meta  
       2013-09-25 18:06:18 +08:00
    模块是要给别人用的,自己测试一下无法证明你的模块正确,要证明给别人看才行。
    firstway
        18
    firstway  
       2013-09-26 01:33:11 +08:00
    等楼主维护千级别甚至万级别代码,时不时的需要修bug,更严重的是该程序还是跑在商业服务器上,出问题往往意味着真金白银的时候,你改动一点点可能就要考虑半天,这时候你就有感觉了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2381 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 16:07 · PVG 00:07 · LAX 09:07 · JFK 12:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.