SuperAPI AI 工具集

tdd

测试与质量

查看项目

更新于 10-15 19:50

技能介绍

用途:该技能强制测试驱动开发(TDD),核心铁律是“没有先失败的测试,就不写生产代码”。若先写了代码,必须删除并从头开始,不得保留作参考、不得在写测试时改编、不得查看。

适用场景:新增 React 组件(apps/web/)、新增 FastAPI 端点(apps/backend/src/api/)、两个应用的缺陷修复、重构既有函数、新增 LangGraph 智能体逻辑(apps/backend/src/agents/)。例外需先获人工确认:一次性原型/概念验证、生成的脚手架代码(如 Alembic 迁移)、配置文件。

红-绿-重构流程:RED 先写一个最小且命名精确的失败测试;必须运行并观察其失败,确认失败原因是功能缺失而非导入或语法错误。前端命令:pnpm test --filter=web;后端命令:cd apps/backend && uv run pytest tests/unit/test_email_validator.py -v。GREEN 写最简实现使测试通过,再运行完整套件确认无回归:前端 pnpm test --filter=web,后端 cd apps/backend && uv run pytest -v。REFACTOR 仅在通过后清理:提取辅助函数、改进命名、去重,保持测试全绿且不新增行为。随后重复下一轮。

测试位置:apps/web/components/ 对应 apps/web/tests/components/(vitest);apps/web/lib/ 对应 apps/web/tests/lib/(vitest);apps/backend/src/ 对应 apps/backend/tests/unit/(pytest);apps/backend/src/api/routes/ 对应 apps/backend/tests/api/(pytest);apps/backend/src/agents/ 对应 apps/backend/tests/agents/(pytest)。

限制与红线:测试首次运行即通过、先实现后补测试、无法解释失败原因、以“太简单”“稍后补”“已手动测过”“就这一次”为由跳过,均属违规,应删除代码重来。完成前需核对:每个新函数先有测试、亲眼见其失败且原因正确、写最简代码、全部测试通过(pnpm turbo run test)、输出无错误无警告、尽量用真实代码(仅在外部 API 等不可避免时用 mock)、覆盖边界与错误路径。遇到困难时先写期望的 API 与断言;测试过复杂说明设计过复杂,应简化接口或使用依赖注入。发现缺陷时先写复现测试再修复。除人工明确确认外无例外。