tdd · git:20261027.3a32e04 · 2026-10-27 · sha256 7ebfd1d29cf42370

tdd git:20261027.3a32e04A

Immutable. This exact content never changes and is served at /api/v1/blob/7ebfd1d29cf42370.

---
name: tdd
description: 测试先行实现或修 bug、补回归测试,或为已有正确实现补充行为测试时使用。按用户范围区分实现改动与仅补测试;不用于只解释测试概念、解读报错或未要求测试工作的普通讨论。
user-invocable: true
allowed-tools: "Read, Grep, Glob, Write, Edit, Bash(npm *, node *, npx *, vitest *, jest *, pytest *)"
argument-hint: "[file-or-description]"
compatibility: "Use the repository's existing test runner, layout and coverage requirements."
---

# Tests with a purpose

从当前会话和 `$ARGUMENTS` 确定要保护的外部行为,阅读实现、相邻测试和项目约定。
选择下面与用户要求相符的分支,沿用现有框架、fixture、测试布局和覆盖率要求。

## 修 bug 或测试先行实现

1. 写最小目标断言:bug 用例必须复现用户报告的行为;新功能用例表达尚未实现的行为。
2. 运行相关测试,确认 RED 来自该断言,而不是语法、导入、缺凭据或缺环境。
3. 修改让用例通过所需的最小实现,再运行该用例与受影响的相邻测试。
4. 有具体必要时才重构,并重新验证;不顺手扩大功能范围。

完成证据是目标失败的实际输出、最小修复和通过结果。不能复现时先修反馈循环,
如实区分环境故障与目标行为,不能声称已经验证修复。

## 仅给已有实现补测试

当用户要求补边界、增加现有行为保护或明确不改实现时,只修改测试及其必要 fixture。
从公开行为推导有区分度的断言,覆盖正常、边界和相关失败路径。正确实现下,测试
首次运行即可通过;报告它新增保护的行为,不改坏代码、伪造失败或制造 RED。

如果新测试暴露真实缺陷,保留证据并说明;按用户已有授权处理修复范围,不能把
“只补测试”自动扩展成生产代码重构。

## 验证与交付

运行最小有意义的测试范围,按依赖扩大验证。测试可观察结果而非私有实现,避免
照抄实现重算期望值。基础设施缺失时说明具体缺口,不为了补一个用例引入整套配置。

简述实际修改、运行的命令、结果和未覆盖范围;只报告真正经历的阶段,不强制
RED/GREEN/REFACTOR 三段。测试通过不等于所有未测行为正确。