SuperAPI AI 工具集

tdd-workflow

测试与质量

查看项目

更新于 10-15 20:21

技能介绍

TDD Workflow 是一套围绕测试驱动开发(Test-Driven Development)的工作流原则,核心理念是「先写测试,再写代码」。

一、TDD 循环 工作流遵循 RED-GREEN-REFACTOR 循环:

  • 🔴 RED:编写一个会失败的测试
  • 🟢 GREEN:编写最小代码让测试通过
  • 🔵 REFACTOR:改进代码质量
  • 然后重复该循环。

二、TDD 三定律

  1. 只为让失败的测试通过而编写生产代码;
  2. 只编写足以展示失败的测试;
  3. 只编写足以让测试通过的代码。

三、RED 阶段原则 关注点包括:行为(如「should add two numbers」)、边界情况(如「should handle empty input」)、错误状态(如「should throw for invalid data」)。RED 阶段规则:测试必须先失败;测试名称描述预期行为;理想情况下每个测试一个断言。

四、GREEN 阶段原则 最小代码原则包括:YAGNI(You Aren't Gonna Need It)、最简单实现、不做优化。GREEN 阶段规则:不写不需要的代码;暂不优化;让测试通过即可,不多做。

五、REFACTOR 阶段原则 可改进的方面:重复代码(提取公共代码)、命名(让意图清晰)、结构(改进组织)、复杂度(简化逻辑)。REFACTOR 规则:所有测试必须保持绿色;小步增量修改;每次重构后提交。

六、AAA 模式 每个测试遵循:Arrange(准备测试数据)、Act(执行被测代码)、Assert(验证预期结果)。

七、何时使用 TDD

  • 新功能:价值高
  • Bug 修复:价值高(先写测试)
  • 复杂逻辑:价值高
  • 探索性开发:价值低(先做 spike,再 TDD)
  • UI 布局:价值低

八、测试优先级

  1. 正常路径(Happy path)
  2. 错误情况
  3. 边界情况
  4. 性能

九、反模式

  • 不要跳过 RED 阶段,要观察测试先失败
  • 不要事后补测试,要在写代码前写测试
  • 不要一开始就过度设计,保持简单
  • 不要多个断言,每个测试一个行为
  • 不要测试实现细节,要测试行为

十、AI 增强的 TDD 多智能体模式:Agent A 编写失败测试(RED);Agent B 实现以通过测试(GREEN);Agent C 进行优化(REFACTOR)。

核心理念:测试就是规格说明。如果写不出测试,说明你还不理解需求。