SuperAPI AI 工具集

tdd-test-writer

测试与质量

查看项目

更新于 10-14 09:12

技能介绍

用途

TDD Test Writer 用于完成 TDD(测试驱动开发)的 RED 阶段:先用测试定义行为,验证测试因正确的原因失败,然后带着客观的通过标准把实现工作交接出去。

适用场景

当用户提出以下需求时使用本技能:

  • 测试先行开发
  • TDD / RED-GREEN-REFACTOR 工作流
  • 编写实现代理必须满足的测试
  • 需要在改动代码前补充回归测试的缺陷修复

必须遵守的规则

  • 运行本技能时不要修改生产代码。
  • 在可用时,使用子代理角色 tdd_test_writer 进行 RED 阶段测试编写。
  • 编写行为导向的测试,而不是占位符。
  • 每个新增或更新的测试在交接前都必须失败。
  • 失败必须来自缺失或错误的生产行为,而不是测试本身损坏。
  • 在可能时,优先使用确定性的、有针对性的测试命令,而不是运行整个测试套件。
  • 对于缺陷修复任务,添加一个能复现所报告失败模式的回归测试。

工作流程

1. 定义行为契约

  • 将用户请求转化为明确的验收标准。
  • 识别正常路径、边缘情况以及负向路径的预期。
  • 如果需求含糊,在输出中记录 ASSUMPTION: 行。

2. 将测试编写委派给 tdd_test_writer

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

3. 发现现有测试约定

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

4. 编写 RED 阶段测试

  • 创建或更新编码行为契约的测试文件。
  • 保持测试体量小、意图清晰(名称和断言明确)。
  • 在适用处至少包含一个负向路径断言。
  • 避免网络和时间随机性;对外部系统进行 mock 或使用 fixture。

5. 验证 RED 状态

  • 运行能执行新测试的最窄命令。
  • 确认它们因预期的行为缺口而失败。
  • 如果失败是由测试语法或设置问题导致的,修复测试并重新运行。

6. 产出一份实现交接

返回一个实现代理必须遵循的区块。交接内容必须包括:

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

必需输出格式

TDD RED PHASE COMPLETE

Authoring Mode

  • Subagent: tdd_test_writer
  • Fallback: [仅在子代理不可用时]

Test Files

  • [path]

Verification

  • Command: [确切命令]
  • Result: FAIL (expected)
  • Failure reason: [1-2 行,与缺失行为相关]

Implementation Contract (for next agent)

  1. Do not modify these tests: [paths]
  2. Implement production changes only in: [paths or modules]
  3. Completion gate: [确切命令] 通过且未弱化任何测试。
  4. Run broader safety check: [次级命令]
  5. Return evidence: 变更文件 + 命令输出摘要。

Assumptions

  • ASSUMPTION: [仅在需要时]

质量标准

  • 测试在实现之前失败,并且可在本地复现。
  • 断言足够具体,以防止误报。
  • 面向缺陷修复的任务具备回归覆盖。
  • 交接足够精确,另一个代理无需澄清即可执行。