mcpField
T
tdd

tdd

github.com/youdotcom-oss测试与质量98137 次安装3 天前更新
代码仓库

关于 tdd

这是一项指导编码 Agent 采用小步红—绿—重构循环的 TDD 技能,强调围绕行为编写测试、使用真实运行时边界,并在交付前验证。

主要功能

  1. 01按纵向红—绿—重构切片推进
  2. 02每种行为编写一个聚焦测试
  3. 03优先使用真实依赖而非模拟
  4. 04测试条件分支与错误路径
  5. 05验证定向测试和类型检查

适用场景

  1. 01先用失败测试定义新行为
  2. 02在实现前确定测试边界
  3. 03避免模拟内部运行时行为
  4. 04交付前检查测试与类型门禁

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/youdotcom-oss/agent-skills --skill tdd

安装后在 Claude Code 中输入/tdd确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
deep-modules.md
interface-design.md
mocking.md
refactoring.md
tests.md

详细介绍

测试驱动开发

核心规则

按垂直的红—绿—重构切片推进:

  1. RED:针对一种可观察行为编写一个测试。
  2. GREEN:只做最小的生产代码改动,让该测试通过。
  3. REFACTOR:仅在测试保持通过时进行清理。

不要在实现前批量编写设想中的测试。每个新测试都应针对上一轮让你了解的实际行为和接口。

Plaited 默认设置

  • 使用 bun test 运行定向测试,使用 bun --bun tsc --noEmit 进行类型检查。
  • 使用 test,而不是 it,并用 describe 组织测试。
  • 优先使用真实依赖和真实运行时边界,而不是模拟对象。
  • 仅模拟外部边界,例如远程 API、时间、随机性或罕见的文件系统情况。
  • 避免有条件的断言:先断言分支,再断言分支特有的值。
  • 对条件分支、回退逻辑和错误路径都进行测试。
  • 测试公共接口和运行时契约,而不是私有辅助函数。
  • 针对所修改的区域,遵循适用的仓库技能和 AGENTS.md 规则。

开始工作时

先探索代码库。如果可以从代码、测试或文档中找到公共接口、预期行为或风险边界,就依据这些证据,而不是询问用户。

只有在无法找到相关决策,且贸然假设存在风险时,才提出一个简短的问题,并附上你建议的答案。

编写生产代码前,先确定:

  • 要测试的公共接口或运行时边界
  • 首个要验证的可观察行为
  • 本轮要运行的定向测试命令
  • 交付前所需的更广泛验证

循环规范

针对每种行为:

  1. 添加或更新且仅更新一个聚焦的测试。
  2. 运行定向测试,确认它因预期原因失败。
  3. 仅实现通过该测试所需的代码。
  4. 运行同一个定向测试,确认它通过。
  5. 如有必要,进行重构,然后重新运行受影响的测试。

如果生产代码尚未更改,测试就已经通过,那么它就不能作为有效的 RED 信号。应收紧测试、选择另一种行为,或说明现有覆盖为何已能证明该行为。

参考文件

评论

支持 Markdown