用途:该技能用于以垂直切片(tracer bullets)而非水平分层的方式实践测试驱动开发,触发场景包括任务计划中有明确外部契约的行为(纯函数、API 端点、模块边界)、缺陷修复(先写失败复现测试再修复)、以及将代码重构进新模块(先针对新接口写测试)。不适用于探索性试验(应使用 /gsd start spike,不产出生产代码)、视觉验证优于单元测试的纯 UI 打磨、以及只运行一次即删除的脚本。
核心原则:测试通过公开接口验证行为,而非实现细节;好测试读起来像规格说明书并能经受重构;垂直切片而非水平分层,一次一发曳光弹,写一个测试、让它通过、学习、再写下一个;红灯时绝不重构。
使用方式:第一步确认接口——明确公开接口(函数签名、HTTP 路由、模块导出)、按重要性排列关键行为、用文字写出一个调用示例,若用户未提供则提 1–3 个问题。第二步曳光弹——选第一个行为(通常是最常见输入的快乐路径),写一个端到端穿过公开接口的测试并运行,必须失败(RED);若通过则测试没测到预期内容,先修测试;再写最小代码使其通过(GREEN),最小意味着硬编码返回 42 即可。第三步红绿循环——选下一个行为写一个测试固定它,运行 RED,写最小代码在不破坏先前测试的前提下使其通过,运行 GREEN;行为选择上交替快乐路径变体与边界用例,快乐路径不再暴露新代码时转向错误处理;测试原则为一个概念一个断言、不 mock 内部实现、仅必要时 mock 外部 I/O(网络、文件系统、时钟)、测试名读作句子;代码原则为最小通过、首次与第二次出现可复制粘贴、第三次出现再抽取。第四步绿灯时重构——提取重复逻辑、重命名不清变量、深化模块,每次小改动后运行测试保持 GREEN;若重构需改测试,说明测试与实现耦合,先修测试再重构;不做投机性重构。第五步收尾切片——运行完整测试套件验证无回归,若行为非显而易见或测试暴露了未来应知的陷阱,向 .gsd/KNOWLEDGE.md 追加一行摘要,使用 gsd_* 工具标记任务完成而非手动编辑复选框。
限制:资料未提供安装命令、平台要求、收费与价格信息,暂未提供。成功标准包括:任务计划中每个行为都有通过公开接口固定的测试;每个测试都先 RED 后 GREEN,没有天生通过的测试;所有重构都在 GREEN 时进行,最终代码不是初稿;完整测试套件干净运行无回归;没有测试 mock 内部辅助函数或断言私有字段。