m939594960
V2EX  ›  问与答

单元测试要测试错误的流程么?

  •  
  •   m939594960 · Mar 22, 2018 · 2225 views
    This topic created in 3001 days ago, the information mentioned may be changed or developed.

    比如用户输入的金额为负数的时候抛出异常这种的测试需要进行么?

    因为我看主流的开源项目好像基本都是测试正确的流程,没见过有测试错误流程的代码。

    但是我感觉测试错误流程的地方也很有必要

    Supplement 1  ·  Mar 22, 2018
    哈哈,看来这个问题很多人都有完全不同的见解。。。
    12 replies    2018-03-22 14:33:13 +08:00
    Moorj
        1
    Moorj  
       Mar 22, 2018
    我是会测的,但我是人肉测,我不会单元测试
    whypool
        2
    whypool  
       Mar 22, 2018
    测试正确流程,断言判断期望的正确值
    异常一般不写单元测试
    hahastudio
        3
    hahastudio  
       Mar 22, 2018
    如果异常是接口约定的一部分,应该要写的吧?
    dtgio
        4
    dtgio  
       Mar 22, 2018 via iPhone
    这样不就成了单元测试的单元测试了吗?
    子子孙孙无穷尽也?
    gamexg
        5
    gamexg  
       Mar 22, 2018
    订单类绝对要测试入户输入负数的情况是否能够拦截,否则小心被人玩坏。
    记得乌云还在的时候可以看到很多负数商品数量的订单。
    iyaozhen
        6
    iyaozhen  
       Mar 22, 2018 via Android
    额,你见的哪个开源项目只测正常流程?
    异常流程也重要。单测指标:分支覆盖率了解一下。只测正常流程覆盖率很低的。
    输入是负数代码也应该有逻辑分支去处理,输出也是有确定预期的。
    mikuazusa
        7
    mikuazusa  
       Mar 22, 2018
    肯定要啊,有一条原则:“永远不要相信用户输入”,这算是测试的基础吧
    chenuu
        8
    chenuu  
       Mar 22, 2018
    前东家不同逻辑分支覆盖率要到 75%
    otakustay
        9
    otakustay  
       Mar 22, 2018
    抛异常是你预期的一部分么,是的就要测。你不预期用户会输入负数,那自然不测
    airyland
        10
    airyland  
       Mar 22, 2018
    这类格式可以不用全部过单元测试,但是逻辑要写,类似代码逻辑可以只测试一两个确保判断的公用校验函数无 bug。其他类似的 if 格式判断,出于提高覆盖率的目的使用 istanbul ignore if。
    Mutoo
        11
    Mutoo  
       Mar 22, 2018
    这是单元测试中的边界测试,非常重要。只测正确的流程,代码覆盖率很低吧。
    Hstar
        12
    Hstar  
       Mar 22, 2018
    为了测试覆盖率,只测那些有特殊异常处理逻辑的异常,一些莫名其妙抛出来的异常不管
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5592 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 67ms · UTC 03:46 · PVG 11:46 · LAX 20:46 · JFK 23:46
    ♥ Do have faith in what you're doing.