tdd
Installation
SKILL.md
TDD(red → green)
测试验证公共接口上的行为,不验证实现细节;实现可以整个换掉,测试不该跟着换。每个循环开始前查阅本文件,而不是事后。
Seams:测试放哪里
seam 是观察行为的公共边界:不深入内部就能看到行为变化的接口。测试只放在 seams 上,从不对着内部写。
只在预先商定的 seams 上测试。 写任何测试前,先写下要测的 seams 并与用户确认,或采用已批准 Spec/plan 的验收面;未确认的 seam 上不写测试。问法:"公共接口是什么?哪些 seams 值得测?"
好测试读起来像规约("user can checkout with valid cart"),能在重构后存活。好/坏对照见 references/tests.md;mock 边界见 references/mocking.md。
循环规则
- 先红后绿。 先写失败测试,再写刚好让它通过的实现;不预写未来测试,不加投机功能。
- 一次一片。 每个循环一个 seam、一个测试、一段最小实现;垂直切片而非横向铺开——先写全部测试再写全部实现,验证的是想象中的行为。
- 重构不在循环内。 行为变绿后的结构收敛由 review 识别、授权后另行整理,不混进 red-green 循环。