You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

测试断言中应使用常量还是直接引用值?

三种商品价格断言方式的取舍分析

先逐个拆解三种写法的优劣势:

  • 直接写死数值

    expect(price).toBe(20);
    

    优点是一眼能看到预期价格,非常直观。但缺点也很明显:如果mock里的价格后续更新,你得手动修改这个硬编码的数值,大型项目里mock数据变动频繁的话,很容易漏改,导致测试用例失效。

  • 直接引用mock深层路径

    expect(price).toBe(orderMock.data.user.order.price);
    

    好处是mock数据更新后,测试用例不用同步修改,能自动跟上变化。但过长的嵌套路径可读性太差,一旦mock的结构调整(比如层级改名、增减),这里会直接报错,调试时得逐层排查路径问题,效率很低。

  • 定义中间变量

    const expectedPrice = orderMock.data.user.order.price;
    expect(price).toBe(expectedPrice);
    

    这种写法是最优解:既继承了和mock联动的优势,又通过expectedPrice这个变量名让代码意图更清晰。如果后续mock结构变化,只需要修改变量赋值的那一行,所有用到这个变量的断言都不用动,维护成本大幅降低。而且变量名还能起到注释的作用,哪怕刚接手项目的人也能快速理解这行断言的目的。

总结下来,优先选第三种写法;如果是一次性的简单测试,且mock数据几乎不会变动,第一种也可以用;第二种尽量避免,除非是临时调试的场景。

内容的提问来源于stack exchange,提问作者eugenedrvnk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 18:46:03