2026-06-09 / 极限编程

TDD 与单元测试:用测试驱动设计与反馈

TDD 的价值不是测试数量,而是用红绿重构循环持续压缩设计反馈时间。

极限编程TDD重构

TDD 与单元测试:用测试驱动设计与反馈

TDD 不是“先写测试”这么简单,而是把设计反馈压缩到很短的循环里。测试先描述期望行为,代码再满足这个行为,最后通过重构改善结构。

核心循环

stateDiagram-v2
    [*] --> Red
    Red: 写一个失败测试
    Red --> Green: 写最小实现
    Green --> Refactor: 测试通过后整理设计
    Refactor --> Red: 下一个行为

实际工程场景

当业务规则包含边界条件、状态迁移、金额计算或权限判断时,TDD 可以帮助你先澄清行为,再写实现。它尤其适合领域服务、值对象和纯业务规则。

常见误区

  • 为了覆盖率写脆弱测试。
  • 只测实现细节,不测业务行为。
  • 测试太大,失败时无法定位原因。

最佳实践

  • 每个测试只表达一个业务行为。
  • 命名中体现 Given / When / Then。
  • 重构必须发生在绿灯之后。
  • 对外部依赖用契约或集成测试补足。
TDD 与单元测试:用测试驱动设计与反馈 | Remi Resume