测试驱动开发Skill tdd

测试驱动开发(TDD)技能用于实践测试驱动开发方法论,强调先写测试再实现代码,遵循红-绿-重构循环。适用于编写测试、设计测试结构、管理测试数据、审查测试优先方法等场景。关键词:测试驱动开发、TDD、红绿重构、测试优先、单元测试、软件开发最佳实践。

测试 0 次安装 0 次浏览 更新于 3/18/2026

name: tdd description: 测试驱动开发方法论及红-绿-重构工作流(原test-tdd)。此技能应在实践TDD、先写测试、在实现前设计测试或审查测试优先方法时使用。触发词包括“先写测试”、“代码前测试”、“红绿重构”、“测试驱动开发”。此技能不涵盖Vitest框架细节(使用vitest技能)或使用MSW进行API模拟(使用msw技能)。

社区测试驱动开发最佳实践

全面的测试驱动开发实践指南,专为AI代理和LLM设计。包含8个类别的42条规则,按影响优先级排序,以指导测试编写、重构和代码生成。

何时应用

参考这些指南当:

  • 使用TDD工作流编写新测试
  • 实施红-绿-重构循环
  • 设计测试结构和组织
  • 创建测试数据和夹具
  • 审查或重构现有测试套件

TDD工作流

  1. : 编写一个定义期望行为的失败测试
  2. 绿: 编写最小代码使测试通过
  3. 重构: 清理代码同时保持测试绿
  4. 为每个新行为重复

规则类别按优先级

优先级 类别 影响 前缀
1 红-绿-重构循环 关键 cycle-
2 测试设计原则 关键 design-
3 测试隔离与依赖 isolate-
4 测试数据管理 data-
5 断言与验证 中等 assert-
6 测试组织与结构 中等 org-
7 测试性能与可靠性 中等 perf-
8 测试金字塔与策略 strat-

快速参考

1. 红-绿-重构循环(关键)

  • 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. 测试设计原则(关键)

  • design-test-behavior-not-implementation - 测试行为而非实现
  • design-one-assertion-per-test - 每个测试一个逻辑断言
  • design-descriptive-test-names - 使用描述性测试名称
  • design-aaa-pattern - 遵循安排-执行-断言模式
  • design-test-edge-cases - 测试边缘情况和边界
  • design-avoid-logic-in-tests - 避免在测试中使用逻辑

3. 测试隔离与依赖(高)

  • isolate-mock-external-dependencies - 模拟外部依赖
  • isolate-no-shared-state - 避免测试间共享可变状态
  • isolate-deterministic-tests - 编写确定性测试
  • isolate-prefer-stubs-over-mocks - 查询时优先使用存根而非模拟
  • isolate-use-dependency-injection - 使用依赖注入提高可测试性

4. 测试数据管理(高)

  • data-use-factories - 使用工厂创建测试数据
  • data-minimal-setup - 保持测试设置最小化
  • data-avoid-mystery-guests - 避免神秘嘉宾
  • data-unique-identifiers - 每个测试使用唯一标识符
  • data-builder-pattern - 对复杂对象使用构建器模式

5. 断言与验证(中等)

  • assert-specific-assertions - 使用具体断言
  • assert-error-messages - 断言错误消息和类型
  • assert-no-assertions-antipattern - 每个测试必须有断言
  • assert-custom-matchers - 为领域断言创建自定义匹配器
  • assert-snapshot-testing - 谨慎使用快照测试

6. 测试组织与结构(中等)

  • org-group-by-behavior - 按行为而非方法分组测试
  • org-file-structure - 遵循一致的测试文件结构
  • org-setup-teardown - 适当使用设置和拆卸钩子
  • org-test-utilities - 提取可重用的测试工具
  • org-parameterized-tests - 使用参数化测试处理变体

7. 测试性能与可靠性(中等)

  • perf-fast-unit-tests - 保持单元测试在100毫秒以下
  • perf-avoid-network-calls - 在单元测试中消除网络调用
  • perf-fix-flaky-tests - 立即修复不稳定测试
  • perf-parallelize-tests - 并行化独立测试
  • perf-avoid-sleep - 避免任意休眠调用

8. 测试金字塔与策略(低)

  • strat-test-pyramid - 遵循测试金字塔
  • strat-mutation-testing - 使用突变测试验证测试质量
  • strat-coverage-targets - 设置有意义的覆盖率目标
  • strat-integration-boundaries - 在服务边界测试集成
  • strat-e2e-critical-paths - 限制端到端测试到关键用户路径

如何使用

阅读个别参考文件以获取详细解释和代码示例:

相关技能

  • 对于Vitest框架细节,参见vitest技能
  • 对于使用MSW进行API模拟,参见msw技能

完整编译文档

对于包含所有规则扩展的完整指南:AGENTS.md