V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
apoclast
V2EX  ›  问与答

怎么维护单元测试的代码?

  •  
  •   apoclast · 2011-04-24 13:00:12 +08:00 · 4385 次点击
    这是一个创建于 4749 天前的主题,其中的信息可能已经有所发展或是发生改变。
    开发过程中的那些单元测试,在每次重构后都变得惨不忍睹了。但是又没有多余的精力来一道重构这些代码。但这些代码的存在总是不断扰乱视线或者干脆造成无法编译。最糟糕的是:重构在不断的进行。
    于是现在的对策就是要测的时候写,测完就删掉。我实在是厌倦这个过程了,大家有好的方法可以分享吗?
    6 条回复    1970-01-01 08:00:00 +08:00
    roamlog
        1
    roamlog  
       2011-04-24 13:22:37 +08:00 via iPhone
    重构的时候难道不是应该先重构测试代码吗,你这样的单元测试有什么意义?
    chloerei
        2
    chloerei  
       2011-04-24 14:10:05 +08:00
    重构之前运行测试,确认当前版本可以通过测试

    重构 -> 运行测试

    测试失败,查看是重构出错还是测试过时,如重构出错则处理错误,测试过时则修改测试或删除过时测试

    重复上面,运行测试 -> 测试通过

    重构完毕

    总结:代码库中的每个commit都是通过所有测试的
    roamlog
        3
    roamlog  
       2011-04-24 14:35:15 +08:00 via iPhone
    ls 的讲的比我准确和详细
    apoclast
        4
    apoclast  
    OP
       2011-04-24 16:42:23 +08:00
    在我编写库a给b使用并且重构a的时候,为了偷懒喜欢直接用b来测试a的代码,b对a的调用覆盖非常全面。而专门为a写的测试代码没有一道重构。这样是不是对软件质量伤害很大呢?
    chloerei
        5
    chloerei  
       2011-04-24 18:21:27 +08:00
    奥,有人提醒我,重构的时候需要改变测试代码的话,说明已经做了重构以外的事情。要改变接口的话,先修改测试。
    chloerei
        6
    chloerei  
       2011-04-24 18:26:10 +08:00
    @apoclast 我觉得还是需要有a的单独的测试。b应该没有对a的边界值做全面的调用,而只是代表通常情况。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3328 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 11:25 · PVG 19:25 · LAX 04:25 · JFK 07:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.