← ClaudeAtlas

pdlc-tddlisted

TDD 测试先行(按设计文档生成失败的测试用例)
kanfu-panda/pdlc-skills · ★ 7 · AI & Automation · score 83
Install: claude install-skill kanfu-panda/pdlc-skills
# TDD 测试先行 <!-- @include templates/prompts/iron-law.md --> 根据设计文档,先编写测试用例,再实现代码。严格遵循 TDD 工作流。 ## PDLC 前置检查(必须执行,不可跳过) 1. 从用户输入中提取功能名称关键词 2. 在 `docs/02_design/` 的子目录(api/、architecture/、database/、ui-ux/)下搜索包含该关键词的设计文档 - 匹配新格式:`F<日期>-<NN>-*<关键词>*-<类型>.md` - 匹配旧格式:`YYYYMMDD-*<关键词>*-<类型>.md` - 同时检查文件内容中是否包含该关键词 3. **未找到任何设计文档** → 输出以下信息后**立即停止,不继续执行**: ``` ⛔ PDLC 守卫:未找到与「<功能名>」相关的设计文档(API/架构/数据库/UI 任一)。 测试用例必须基于已有的设计文档。请先运行: 👉 /pdlc-design <设计目标> ``` 4. **找到** → 提取功能ID(如 `F20260326-01`),读取设计文档内容,继续执行 ## 工作流程 1. **阅读设计文档**: 阅读找到的设计文档,全面理解接口/架构/数据模型 2. **阅读编码规范**: 阅读 `docs/00_standards/coding/` 目录了解编码规范(未命中 → 提示 `consider /pdlc-standard add coding/<topic>`) 3. **编写测试计划**: 在 `docs/04_testing/unit-tests/` 下创建测试计划文档 - **使用模板**: `templates/test-plan-template.md` - **文件名格式**: `<功能ID>-<功能名>-test-plan.md`(如 `F20260326-01-user-auth-test-plan.md`) - **文档顶部必须包含 PDLC 追溯头**: ``` <!-- PDLC-TRACE --> <!-- 功能ID: F20260326-01 --> <!-- 功能名称: user-auth --> <!-- 阶段: 测试 --> <!-- 前置文档: docs/02_design/api/F20260326-01-user-auth-api.md --> ``` 4. **编写测试代码**: 在对应服务/应用的测试目录下编写测试用例 - 后端: `backend/services/<服务名>/src/test/` 或 `backend/services/<服务名>/tests/` - 前端: `frontend/<分类>/<应用名>/src/__tests__/` 5. **测试计划自审与自动修复**(编写完成后、运行前执行,不可跳过): - 重新阅读测试计划和测试代码,对照设计文档和 PRD 逐项检查以下质量门禁: **验收标准覆盖度**: - [ ] PRD 中每条验收标准是否至少有一个对应的测试用例 - [ ] 设计文档中每个接口是否至少有正常流程 + 异常流程的测试 **场景完备性**: - [ ] 正常流程:核心业务路径是否全部覆盖 - [ ] 边界条件:空值/null、