SuperAPI AI 工具集

tdd

测试与质量

查看项目

更新于 10-15 09:54

技能介绍

用途

TDD 技能用于在开发功能或修复缺陷时,通过测试驱动开发(Test-Driven Development)的红-绿-重构循环来指导编码。它适用于用户明确要求使用 TDD、提及“red-green-refactor”或希望以测试先行的方式构建功能的场景。

主要能力

  • 行为驱动测试:强调测试应通过公共接口验证行为,而非耦合实现细节。好的测试读起来像规格说明,例如“用户可以使用有效购物车结账”,并且能在内部重构后继续通过。
  • 避免水平切片:反对先写所有测试再写所有实现的做法,认为这会导致测试批量编写、测试想象的行为而非实际行为、测试对真实变化不敏感等问题。
  • 垂直切片与追踪弹:采用一次一个测试、一次一个实现的增量方式,每个测试都基于上一轮循环中学到的内容。
  • 四阶段工作流:包括规划、追踪弹、增量循环和重构。
  • 每轮检查清单:确保测试描述行为、仅使用公共接口、能经受内部重构、代码最小化且无推测性功能。

使用方式

  1. 规划:在编写代码前,与用户确认接口变更、要测试的行为(按优先级)、识别深模块机会、设计可测试接口、列出要测试的行为(非实现步骤),并获得用户对计划的批准。
  2. 追踪弹:编写一个测试确认系统的一个行为。RED:写第一个行为的测试,测试失败;GREEN:写最小代码使其通过,测试通过。这证明路径端到端可用。
  3. 增量循环:对每个剩余行为,RED:写下一个测试,失败;GREEN:写最小代码使其通过。规则包括一次一个测试、仅写足够通过当前测试的代码、不预测未来测试、保持测试聚焦于可观察行为。
  4. 重构:所有测试通过后,寻找重构候选:提取重复、深化模块(将复杂性移到简单接口后)、自然应用 SOLID 原则、考虑新代码揭示了现有代码的什么。每次重构步骤后运行测试。绝不在 RED 状态下重构,先达到 GREEN。

适用场景

  • 用户希望使用 TDD 构建功能或修复缺陷。
  • 用户提及“red-green-refactor”或类似术语。
  • 需要以测试先行方式确保代码行为正确且可维护的项目。

限制

  • 无法测试所有内容,需与用户确认哪些行为最重要,聚焦关键路径和复杂逻辑,而非每个可能的边缘情况。
  • 资料中未提供具体的安装命令、代码示例或平台支持信息。
  • 资料中未提供收费、价格或效果保证等信息。