关于 tdd
面向 AI Agent 和开发者的 TDD 指南,包含 42 条分优先级规则,覆盖测试编写、重构和代码生成。
主要功能
- 01八类共 42 条规则
- 02按优先级组织 TDD 指引
- 03红-绿-重构工作流
- 04测试设计与隔离实践
- 05测试数据与断言建议
- 06性能与测试策略建议
适用场景
- 01先写测试再实现功能
- 02审查或重构测试套件
- 03组织测试数据与夹具
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pymodel/ react-frontend-skills --skill tdd安装后在 Claude Code 中输入/tdd确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/assert-custom-matchers.mdassert-error-messages.mdassert-no-assertions-antipattern.mdassert-snapshot-testing.mdassert-specific-assertions.mdcycle-maintain-test-list.mdcycle-minimal-code-to-pass.mdcycle-refactor-after-green.mdcycle-small-increments.mdcycle-verify-test-fails-first.mdcycle-write-test-first.mddata-avoid-mystery-guests.mddata-builder-pattern.mddata-minimal-setup.mddata-unique-identifiers.mddata-use-factories.mddesign-aaa-pattern.mddesign-avoid-logic-in-tests.mddesign-descriptive-test-names.mddesign-one-assertion-per-test.mddesign-test-behavior-not-implementation.mddesign-test-edge-cases.mdisolate-deterministic-tests.mdisolate-mock-external-dependencies.mdisolate-no-shared-state.mdisolate-prefer-stubs-over-mocks.mdisolate-use-dependency-injection.mdorg-file-structure.mdorg-group-by-behavior.mdorg-parameterized-tests.md详细介绍
社区测试驱动开发最佳实践
面向 AI Agent 和大模型的测试驱动开发实践综合指南。包含 8 个类别中的 42 条规则,并按影响程度排序,帮助指导测试编写、重构和代码生成。
适用场景
在以下情况下参考这些指南:
- 使用 TDD 工作流编写新测试
- 实施红-绿-重构循环
- 设计测试结构和组织方式
- 创建测试数据和测试夹具
- 审查或重构现有测试套件
TDD 工作流
- RED:编写一个定义预期行为的失败测试
- GREEN:编写最少的代码,让测试通过
- REFACTOR:在保持测试通过的同时清理代码
- 针对每个新行为重复以上步骤
按优先级划分的规则类别
| 优先级 | 类别 | 影响 | 前缀 |
|---|---|---|---|
| 1 | 红-绿-重构循环 | CRITICAL | cycle- |
| 2 | 测试设计原则 | CRITICAL | design- |
| 3 | 测试隔离与依赖 | HIGH | isolate- |
| 4 | 测试数据管理 | HIGH | data- |
| 5 | 断言与验证 | MEDIUM | assert- |
| 6 | 测试组织与结构 | MEDIUM | org- |
| 7 | 测试性能与可靠性 | MEDIUM | perf- |
| 8 | 测试金字塔与策略 | LOW | strat- |
快速参考
1. 红-绿-重构循环(CRITICAL)
cycle-write-test-first- 在实现之前先编写测试cycle-minimal-code-to-pass- 只编写足以通过测试的代码cycle-refactor-after-green- 测试通过后立即重构cycle-verify-test-fails-first- 编写代码前确认测试会失败cycle-small-increments- 采取小步渐进的方式cycle-maintain-test-list- 维护测试清单
2. 测试设计原则(CRITICAL)
design-test-behavior-not-implementation- 测试行为,而非实现design-one-assertion-per-test- 每个测试只包含一个逻辑断言design-descriptive-test-names- 使用描述性测试名称design-aaa-pattern- 遵循 Arrange-Act-Assert 模式design-test-edge-cases- 测试边界情况和边界值design-avoid-logic-in-tests- 避免在测试中编写逻辑
3. 测试隔离与依赖(HIGH)
isolate-mock-external-dependencies- 模拟外部依赖isolate-no-shared-state- 避免测试之间共享可变状态isolate-deterministic-tests- 编写确定性测试isolate-prefer-stubs-over-mocks- 对查询优先使用存根,而非模拟对象isolate-use-dependency-injection- 使用依赖注入提升可测试性
4. 测试数据管理(HIGH)
data-use-factories- 使用工厂创建测试数据data-minimal-setup- 尽量精简测试设置data-avoid-mystery-guests- 避免使用难以理解的测试数据data-unique-identifiers- 每个测试使用唯一标识符data-builder-pattern- 对复杂对象使用 Builder 模式
5. 断言与验证(MEDIUM)
assert-specific-assertions- 使用具体的断言assert-error-messages- 断言错误消息和类型assert-no-assertions-antipattern- 每个测试都必须包含断言assert-custom-matchers- 为领域断言创建自定义匹配器assert-snapshot-testing- 谨慎使用快照测试
6. 测试组织与结构(MEDIUM)
org-group-by-behavior- 按行为而非方法对测试分组org-file-structure- 遵循一致的测试文件结构org-setup-teardown- 适当使用设置和清理钩子org-test-utilities- 提取可复用的测试工具org-parameterized-tests- 对不同变体使用参数化测试
7. 测试性能与可靠性(MEDIUM)
perf-fast-unit-tests- 让单元测试足够快,以便持续获得反馈perf-avoid-network-calls- 消除单元测试中的网络调用perf-fix-flaky-tests- 立即修复不稳定的测试perf-parallelize-tests- 并行运行彼此独立的测试perf-avoid-sleep- 避免任意调用休眠
8. 测试金字塔与策略(LOW)
strat-test-pyramid- 遵循测试金字塔strat-mutation-testing- 使用变异测试验证测试质量strat-coverage-targets- 设定有意义的覆盖率目标strat-integration-boundaries- 在服务边界测试集成strat-e2e-critical-paths- 将 E2E 测试限制在关键用户路径上
如何使用
对于上面与任务相关的每条规则,请阅读 references/<rule-id>.md,了解其重要性,以及错误与正确的代码示例。
相关技能
- 有关 Vitest 框架的具体信息,请参阅
vitest技能 - 有关使用 MSW 模拟 API,请参阅
msw技能
评论
支持 Markdown