跳到正文

单元测试

Unit Test

中级通用

单元测试(Unit Test)是针对一小块代码编写的自动检查,通常给函数或模块提供输入,再核对输出或可观察的行为。它能帮你在修改代码后及时发现局部规则被改坏了,比如满减金额算错。

你可能会说:「帮我给优惠券计算逻辑加些自动检查,以后改代码时能知道折扣有没有算错。」

读之前建议先了解

动手看看

订单金额预期金额测试用例三个用例满减函数满200减20断言检查预期已备好测试报告等待结果
1

假设订单满200元减20元。测试准备199、200、201元三个输入,按业务规则独立写下预期应付金额:199、180、181元。

要点

  1. 1

    围绕一小块行为做检查

    比如你写了一个计算订单折扣的函数,测试可以传入订单金额和优惠券,再核对折后金额。范围小,失败时你更容易定位是哪条计算规则出了问题。

  2. 2

    先想清输入和预期结果

    只测一个正常订单还不够。你可以加入刚好达到满减门槛、差一分钱达到门槛、优惠券过期等情况,因为这些边界更容易暴露规则写错的问题。

  3. 3

    隔开不属于本次检查的依赖

    如果折扣函数会读取当前时间,测试可以给它一个固定时间;如果会请求支付服务,就用可控的测试替身。这样失败更可能指向折扣逻辑,而不是网络或时间变化。

容易混淆的地方

单元测试关注局部代码的行为;集成测试关注多个模块接起来能否配合,例如下单接口能否正确写入数据库。端到端测试则从用户操作出发,检查整条流程。一个函数的测试全通过,不代表用户一定能成功下单,因为模块之间仍可能接错。

什么时候用

适合用

  • 你在做电商网站,满减和优惠券规则经常调整,想在每次改动后快速核对金额计算。
  • 你让 AI Agent 重构表单校验函数,想确认邮箱、空值和长度限制的原有行为没变。
  • 你在后台开发权限判断逻辑,需要检查不同角色能否执行指定操作。

不适合用

  • 你想知道用户从购物车到付款成功能否走完整条流程,选端到端测试更贴近目标。
  • 你想验证页面在不同屏幕宽度下是否错位,选实际设备检查或视觉回归测试。
  • 你想知道活动高峰时接口能否承受大量并发请求,选负载测试。

练一练

你让 AI Agent 修改了订单折扣函数,规则是订单满 200 元减 30 元。现在最适合补哪种检查,来及时发现计算规则被改坏?

让 AI 帮你做

请为订单折扣函数补充单元测试,覆盖低于、等于和高于满减门槛的金额,以及优惠券不可用的情况。根据现有产品规则写出明确的预期结果;若逻辑依赖当前时间,请使用固定时间,让测试结果可重复。先运行测试,再说明发现的问题。

接下来学什么