用途:以测试先行驱动功能实现,遵循红-绿-重构循环。触发方式包括“use TDD”“TDD this feature”“red-green-refactor”“test-driven”“write tests first”;一般的“为某功能写测试”或“增加测试覆盖率”不会触发。
流程:先规划接口,确定公开的函数、方法或端点及其输入输出、边界与错误条件;再写一个贯穿最简有意义路径的探针测试,按真实调用方方式调用公开 API,此时运行应失败(红)。随后编写刚好让该测试通过的最小实现(绿),可先硬编码返回值;在测试保持通过的前提下重构,去重、改名、提取辅助代码。之后重复:写下一个失败测试、最小实现通过、绿色下重构,逐步增加复杂度。核心行为完成后补充无效输入、错误条件、边界值、空值等测试,最后做整体重构与清理。
原则:测试行为而非实现,测试应像契约一样定义模块对调用者的承诺;可整体替换内部实现而测试仍通过,说明测试方向正确。仅在系统边界处 mock,例如网络、数据库、文件系统、时钟,其余尽量使用真实依赖。
反模式:先写实现再补测试、一次写多个测试再统一通过、跳过重构、测试私有方法或内部状态、通过削弱断言让测试通过、过度 mock。
限制:仅用于测试先行的工作流;资料未提供具体安装命令、平台要求、价格与性能数据。