// 场景①(Given 60 元、系数 0.85 → Then 85 元) 测试("正常路径:60 × 0.85 → 85 元", () => { // 准备(Given):消费 60,系数 0.85 // 执行(When):跑结算 const 结果 = 结算金额(60, 0.85); // 断言(Then):必须严格 = 85,否则红灯 断言等于(结果, 85); }); // 场景②(Given 系数缺失 → Then 阻断,不出账) 测试("异常边界:系数缺失 → 阻断", () => { 断言会报错(() => 结算金额(60, 缺失)); });
| 正式代码的状态 | 灯 | 说明 |
|---|---|---|
| 🈳 空壳(还没实现) | 🔴🔴 | 该红。功能不存在,测试就该失败。这一步叫「跑红」——先证明这盏灯真的会亮。 |
| ❌ 写错(忘了 ÷0.6) | 🔴🔴 | 灯抓住了 AI。AI 会自信地说「完成了」,但断言算出 51 ≠ 85,红灯不跟它客气。这就是「不可糊弄」。 |
| ✅ 正确 | 🟢🟢 | 可信的绿。因为你亲眼见过它红,这个绿才有分量。 |
最后留意终端里的「退出码」:红 = 1,绿 = 0。人看颜色,机器看这个数字——第 5 讲的门禁判 PASS/FAIL,读的就是这类信号。