TDD Done Right (TDD 的正确姿势)

这是一份关于“TDD 已死?”演讲的核心摘要。演讲者认为 TDD 本身没有问题,但业界普遍的实践方式已经偏离了其初衷,导致了诸多问题。以下是回归 TDD 本源思想的精华提炼。

核心要点(点击展开)

现代 TDD 实践的痛点
回归 TDD 本源:测试行为,而非实现
正确地实践“红-绿-重构” (Red-Green-Refactor)
  1. 红 (Red) - 编写一个失败的测试

    为即将实现的新行为编写一个测试。先运行它,确保它会因为功能未实现而失败。这是为了证明你的测试是有效的,而不是一个永远通过的“假测试”。

  2. 绿 (Green) - 快速让测试通过

    最快、最直接、甚至最“丑陋”的方式让测试变绿。这里的目标是验证解决方案的可行性,而不是追求完美的设计。可以硬编码、复制粘贴代码——此时,“速度压倒设计”。

  3. 重构 (Refactor) - 清理代码 (最关键的一步)

    在测试保持绿色的前提下,清理刚刚写的“丑陋”代码。消除重复、改善命名、提取类和方法、应用设计模式。

    至关重要:在重构阶段,不要添加任何新的测试!你唯一的测试就是第一步写的那个行为测试。所有内部实现(新类、新方法)都由这个高层级的行为测试来覆盖。这正是实现“测试与实现解耦”的关键。

架构的启示:端口与适配器 (六边形架构)
总结与最终建议

原文

源链接