跳转到主要内容
笔记目录

计算机 / 软件工程 / 测试与反馈

测试驱动开发:Red、Green、Refactor

先定义行为,再用反馈推进实现。

核心循环

  1. Red:为下一小块行为写测试,并确认它因尚未实现的行为而失败。
  2. Green:编写足够的实现,让测试通过。
  3. Refactor:保持行为不变,改善代码与测试的结构。

缺少重构阶段,容易得到一组虽然能通过测试、却难以维护的代码片段。

红灯必须失败在正确的地方

导入路径写错、测试框架没有安装,与需求尚未实现,是不同的失败。先确认失败原因,测试才有约束价值。

测试描述可观察行为

例如检查重复提交是否只创建一份记录,或无权限请求是否被拒绝。避免只检查函数内部调用顺序,导致合理重构也触发大量失败。

AI 辅助开发中的使用

把需求、边界情况和验收样例写清楚;先审阅测试是否覆盖目标,再让实现接受测试反馈。测试并不保证需求定义正确,也不替代安全审查、可用性检查或运行环境验证。

适用边界

优先覆盖高价值行为、回归风险和稳定接口。探索性代码、低影响视觉微调和一次性实验,应根据风险选择合适的验证方式,无需机械地为每行代码写测试。

核对来源:Martin Fowler:Test Driven Development。