tdd

测试驱动开发。当用户希望以测试优先的方式构建功能或修复缺陷、提到“红绿重构”(red-green-refactor),或需要集成测试时使用。

提供方:mattpocock/skills调用次数:2.0k收藏:465更新:2026/08/28

技能说明mattpocock/skills

测试驱动开发。当用户希望以测试优先的方式构建功能或修复缺陷、提到“红绿重构”(red-green-refactor),或需要集成测试时使用。

技能简介

本技能提供测试驱动开发(TDD)的参考规范,指导你在“红 → 绿”循环中写出值得保留的测试:明确好测试的标准、测试放置位置(seams)、常见反模式以及循环规则。它帮助用户以测试优先方式构建功能或修复缺陷,并避免常见陷阱。

使用场景

  • 用户希望以测试优先方式构建新功能或修复缺陷。
  • 用户明确提到“红绿重构”(red-green-refactor)。
  • 需要编写集成测试。
  • 对现有模块补充行为规格测试,确保代码可安全重构。
  • 需要与用户协商测试边界(seams)并确定测试策略。

使用方法

本技能作为 Agent Skill 使用。在支持 Skills 的 Agent 环境中(如 Claude 等),将技能文件配置到 skills 目录后,当用户表达上述测试相关需求时,Agent 会自动加载并遵循本技能指导。

核心使用流程:

  1. 先写失败测试(red),确认测试因预期原因失败。
  2. 编写足够的最小实现使测试通过(green)。
  3. 每次循环只处理一个 seam、一个测试、一个最小实现(垂直切片)。
  4. 在写测试前,先与用户确认要测试的公共接口(seams),不测试未经确认的内部实现。
  5. 查看代码库时先读 CONTEXT.md(如存在),使测试命名与项目领域语言一致;若接口形状不确定,可调用 codebase-design 技能获取术语参考。

注意事项

  • 只在“预先协商的 seam”处测试,不测私有方法或内部协作对象。
  • 避免反模式:实现耦合(重构时测试随内部结构破坏)、同义反复(断言值由实现本身推导)、水平切片(先写全部测试再写实现)。
  • 重构不属于红绿循环,应放到 review 阶段,而不是实现循环内。
  • 测试期望值必须来自独立来源(如已知常量、规范示例),不能由实现重新计算。