mcpField
T
tdd

tdd

github.com/ouyangjiahong26测试与质量578 次安装1 天前更新
代码仓库

关于 tdd

一个以测试驱动开发循环指导代码实现的技能,面向需要可靠变更行为的开发者。它强调先观察测试失败,再写最小实现,并在测试通过后重构。

主要功能

  1. 01先写失败测试并确认失败
  2. 02用最小实现通过测试
  3. 03通过后小步重构
  4. 04区分测试先行与探索性代码
  5. 05覆盖正常、边界和错误路径
  6. 06通过接口注入依赖以便测试

适用场景

  1. 01为解析或业务规则新增行为
  2. 02为探索性实现锁定现有行为
  3. 03修复缺陷时编写回归测试

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/ouyangjiahong26/skills --skill tdd

安装后在 Claude Code 中输入/tdd确认已加载。

详细介绍

来自项目 README

TDD

用先失败、再通过、后重构的循环驱动实现:每次行为变更都从一个先失败的测试开始,小步推进。

循环

1. 写失败的测试

写一个断言目标行为的测试,只覆盖下一个要做的行为。跑它,看到失败,记下命令与报错输出。没观察过失败就不写实现:失败证明这个测试真能逮住缺失的行为,而不是碰巧通过或根本没有执行。

2. 写最小的通过实现

用最少的代码让测试通过,丑一点没关系,不多写:超出测试断言的实现没有安全网。跑测试,确认成功。

3. 测试全部通过时重构

只在测试全部通过时重构:消除重复、改名、搬代码。小步改,每步重跑测试保持通过。一旦失败,先恢复通过再继续。

何时测试先行,何时后补

代码类型做法
行为丰富的逻辑(解析、计算、状态机、业务规则)测试先行,走上面的循环
探索性代码(spike、UI 打磨、胶水配置)先实现。要保留或要改动时,先写一套把当前实际行为原样断言下来的测试,锁住已有行为

这套锁行为的测试先对当前行为跑一遍并确认全部通过,再开始改动。此后它就是这个行为的回归测试。

测试设计

  • 断言可观察行为(返回值、状态变化、对依赖发出的调用),不断言实现细节(内部数据结构、私有方法、调用次序):断言实现细节的测试会在重构时误报失败。
  • 一个测试一个主题。测试名描述行为(“空输入返回 400”),不描述被测方法名。
  • 每个行为覆盖正常路径、边界值、错误路径,各是循环里一次独立的失败。

难测试代码

依赖通过接口注入(构造参数、接口字段),让测试能换成可控实现。不硬改生产代码迎合测试框架。

测试替身(stub / fake / spy)只替进程外依赖(网络、数据库、文件系统、时钟)。进程内逻辑用真实实现跑。替身过多时,测试只证明“替身按你写的返回”。

修 bug:先走 diagnosing-bugs

修 bug 时由 diagnosing-bugs 接管,其阶段 5(先于修复写回归测试)就是本 skill 的失败阶段:把缩小后的复现转成失败测试,看到报错,再上修复让它通过。之后要改结构,继续按重构的纪律执行。

完成条件

  • 失败被观察过:能说出测试命令与报错输出
  • 实现让测试通过
  • 重构后测试仍通过
  • 新行为全部有测试覆盖,含边界与错误路径

评论

支持 Markdown