SuperAPI AI 工具集

superspec-tdd

测试与质量

查看项目

更新于 10-16 01:36

技能介绍

用途:在 superspec 任务执行过程中机械式强制 TDD。核心铁律是“没有经过验证的失败测试,就不写生产代码”,即“如果你没亲眼看到测试失败,就不知道它测的是不是正确的东西”。

主要能力:通过任务标签区分流程,包括 [TDD][RED]、[TDD][VERIFY_RED]、[TDD][GREEN]、[TDD][VERIFY_GREEN]、[TDD][REFACTOR] 以及 [NON-TDD][DO]、[NON-TDD][VERIFY]。设置不可协商的门禁:同一 Scenario 的 [TDD][GREEN] 必须在其 [TDD][VERIFY_RED] 完成后才能执行;[NON-TDD][DO] 必须有对应的 [NON-TDD][VERIFY] 任务行。

使用方式:VERIFY_RED 必须得到三种结果之一——PASS 则停止并修正测试/规格/Test Obligation,不写生产代码;ERROR 则停止并修复错误后重跑,直到因预期原因 FAIL;FAIL 时仅当输出包含要求的 Expected (RED) 子串才继续。VERIFY_GREEN 中 PASS 继续,FAIL 则修生产代码而非测试,其他测试失败需停止修复至相关测试全绿。REFACTOR 只能在 VERIFY_GREEN 之后进行,重构后需重跑同一 Verify Command 确认仍通过。NON-TDD 验证必须机械化,如命令输出、文件存在或 openspec validate --all --json,无法表达为命令或确定性检查的就不属于 NON-TDD。

适用场景:行为变更的 TDD 流程,以及仅限 docs-only、config-only(无行为变更)、generated outputs、formatting/renaming only 的 NON-TDD 例外。

限制与禁止:绝不测试 mock 行为;绝不向生产代码添加仅测试用的方法;绝不在不理解依赖副作用的情况下 mock。卡住时按零决策处理:契约不清就更新 specs/**/spec.md 的 Test Obligation 和/或 design.md 的 Test Commands;测试设置过大就简化契约或拆分 Scenario;必须大量 mock 说明耦合过重,应停止并修改设计边界。参考资料为 references/testing-anti-patterns.md。