用途:该技能规定在实现任何功能、修复缺陷、重构或改变行为之前,先写测试。核心原则是:没有先看到测试失败,就不知道它测的是不是正确的东西。
主要能力:提供 RED→GREEN→REFACTOR 的循环节奏。RED 阶段写一个失败的行为测试,测试名需包含角色、场景与期望;Verify RED 阶段运行测试,确认因缺少功能而失败,而非拼写或导入错误;GREEN 阶段写最小生产代码使测试通过;Verify GREEN 阶段再次运行,确认相关测试全部通过且输出干净;REFACTOR 阶段清理命名与重复,保持绿色,不引入新行为。发现缺陷时先写失败的复现测试,再进入同一循环。
使用方式:调用时先声明“Using tdd to …”,然后为每个循环步骤建立待办。该技能要求配合 test-design 使用,由后者决定喂入什么、断言什么、mock 什么。铁律是:没有失败测试就不写生产代码;若先写了代码,必须删除并重新开始,不得保留为“参考”或边写测试边“改编”。
适用场景:新功能、缺陷修复、重构、行为变更。例外情况需先询问人类:一次性原型、生成代码、无行为的纯配置。
限制:禁止形式主义的 RED 测试,失败的表演性测试不能证明任何东西。测试应在首次运行即通过时视为无效,需修正。mock 仅用于外部世界,断言应窄而硬。功能切片完成后需通过交接门询问用户,不得自动推进。