SuperAPI AI 工具集

test-driven-development

编程与开发

查看项目

更新于 10-16 08:34

技能介绍

用途:指导以测试驱动开发方式构建功能或修复缺陷,核心是红-绿-重构循环。

主要理念:测试应通过公共接口验证行为,而非实现细节。好的测试是集成式风格,走真实代码路径,读起来像规格说明(如“用户可用有效购物车结账”),重构后仍能存活。坏的测试耦合实现,模拟内部协作者、测试私有方法或绕过接口,重构时行为未变却失败。

避免横向切片:不要先写全部测试再写全部实现。正确做法是纵向切片,用示踪弹方式:一个测试→一个实现→重复,每个测试基于上一轮所学。

工作流:

  1. 规划:与用户确认接口变更、要测试的行为(按优先级),识别深模块机会,设计可测试接口,列出行为而非实现步骤,获得用户批准。可用 test.todo 先写测试描述收集反馈。
  2. 示踪弹:写一个测试确认一件事,RED 失败,GREEN 用最小代码通过,提交。
  3. 增量循环:对每个剩余行为重复 RED→GREEN→COMMIT;一次一个测试,只写足够通过当前测试的代码,不预判未来行为,测试聚焦可观察行为。
  4. 重构:全部通过后寻找重构点,提取重复、加深模块,每步后运行测试。绝不在 RED 状态重构,先到 GREEN。

每轮检查:测试描述行为非实现、只用公共接口、能经受内部重构、代码最小、无投机功能、已提交可用的测试与代码。

适用场景:构建功能、修复缺陷、需要集成测试时。限制:资料未提供具体命令、安装方式与平台要求。