🚀 快速安装

复制以下命令并运行,立即安装此 Skill:

npx @anthropic-ai/skills install am-will/codex-skills/tdd-test-writer

💡 提示:需要 Node.js 和 NPM

TDD 测试编写器

使用此技能完成 TDD 的 RED 阶段:先通过测试定义行为,验证它们因正确原因失败,然后将实现连同客观的通过标准一同移交。

何时使用

当用户请求以下内容时,使用此技能:

  • 测试优先开发
  • TDD / 红-绿-重构 工作流程
  • 编写实现代理必须满足的测试
  • 在代码更改前需要回归测试的错误修复

必需规则

  1. 运行此技能时,不要修改生产代码。
  2. 只要可用,就使用子代理角色 tdd_test_writer 进行 RED 阶段的测试编写。
  3. 编写以行为为中心的测试,而不是占位符。
  4. 每个新增/更新的测试在移交前必须失败。
  5. 失败必须源于缺失或不正确的生产行为,而不是有问题的测试本身。
  6. 在可能的情况下,优先使用确定性的、有针对性的测试命令,而不是运行整个测试套件。
  7. 对于错误修复任务,添加一个能够捕捉到所报告失败模式的回归测试。

工作流程

1. 定义行为契约

  • 将用户请求转化为明确的验收标准。
  • 识别正常路径、边缘情况和负面路径预期。
  • 如果需求不明确,在输出中记录 ASSUMPTION:(假设)行。

2. 委托 tdd_test_writer 编写测试

  • 启动一个 tdd_test_writer 子代理,提供任务范围、目标文件和验收标准。
  • 要求子代理仅编写/更新测试(不更改生产代码)。
  • 要求提供命令输出,证明新测试处于 RED 状态(失败)。
  • 如果 tdd_test_writer 不可用,则直接继续,并注明 FALLBACK: tdd_test_writer unavailable(回退:tdd_test_writer 不可用)。

3. 发现现有测试约定

  • 从仓库中检测测试框架和运行器(例如 vitest, jest, pytest, go test, cargo test)。
  • 遵循现有的目录、命名和 fixture 约定。
  • 重用现有的辅助函数,而不是引入重复的测试工具。

4. 编写 RED 阶段测试

  • 创建或更新体现行为契约的测试文件。
  • 保持测试小巧且意图明确(清晰的命名和断言)。
  • 在适用的情况下,至少包含一个负面路径断言。
  • 避免网络/时间随机性;对外部系统进行模拟或使用 fixture。

5. 验证 RED 状态

  • 运行执行新测试的最窄范围命令。
  • 确认它们因预期的行为差距而失败。
  • 如果失败是由测试语法/设置引起的,修复测试并重新运行。

6. 生成实现移交说明

返回一个实现代理必须遵循的代码块。移交说明必须包括:

  • 使用的子代理 (tdd_test_writer) 或明确的回退原因
  • 创建/更新的确切测试文件
  • 确切的验证命令
  • 证明 RED 状态的简短失败摘要
  • 不可变的测试约束(除非需求变更,否则不要编辑测试)
  • 定义任务完成的通过标准

必需的输出格式

TDD 红色阶段完成

## 编写模式
- 子代理:tdd_test_writer
- 回退:[仅当子代理不可用时填写]

## 测试文件
- [路径]

## 验证
- 命令:[确切命令]
- 结果:失败(预期)
- 失败原因:[1-2 行,与缺失行为相关]

## 实现契约(供下一个代理使用)
1. 不要修改这些测试:[路径]
2. 仅在这些位置进行生产更改:[路径或模块]
3. 完成门禁:[确切命令] 通过,且不能削弱测试。
4. 运行更广泛的安全检查:[次要命令]
5. 返回证据:更改的文件 + 命令输出摘要。

## 假设
- 假设:[仅在需要时填写]

质量标准

  • 测试在实现前失败,并且可在本地重现。
  • 断言足够具体,以防止误报。
  • 对于由错误修复驱动的任务,包含回归测试覆盖率。
  • 移交说明足够精确,以便另一个代理无需澄清即可执行。

📄 原始文档

完整文档(英文):

https://skills.sh/am-will/codex-skills/tdd-test-writer

💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。