Agent Skills
返回列表
💻

测试驱动开发

开发编程 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @kunlungrowth/kg-tdd

技能介绍

要解决的不是“多写测试”

很多测试看起来像保障,实际只是给当前实现拍了张快照:重构时没改行为,测试却红了;断言里把 add(a, b) 的期望值写成 a + b,构造上永远不会失败;先写一堆测试再补实现,测的是想象中的模块边界,而不是用户可见能力。结果测试从安全网变成重构枷锁。这个技能扮演 TDD 教练,目标是让每轮红—绿循环留下一颗 tracer-bullet 式的测试,真实反映用户可见能力。

它如何工作

核心是先把测试落点收敛到公开边界,也就是接缝(seam)。写测试前先写下被测接缝并确认,不确认不写;要问“公开接口是什么?我们测哪些接缝?” 在 checkout(cart) 这种入口观察行为,而不是钻入私有方法或内部协作者。

循环规则可以列为:

  • 先红后绿:先写会失败的测试,再只写刚好让它通过的实现。
  • 一次一片:一个接缝、一个测试、一次最小实现,做垂直切片。
  • 重构不入循环:重构放到评审阶段。

技能会规避三类反模式:

  • 实现耦合:mock 内部协作者、测私有方法、查库旁路验证。
  • 同义反复:期望值由代码本身算出,如 expect(add(a, b)).toBe(a + b),构造上必过。
  • 水平切片:先写所有测试再写所有实现。

好测试透过公开接口验证行为,代码可整体重写,测试不应随之坏;期望值应来自独立真相源,如已知正确字面量、已算例子或规格。输出会整理为 TestPlan,包含 seams、cycles、anti_patterns_avoided,可交给实现或代码评审阶段消费。

适用边界与注意点

适合在测试优先地做功能或修 bug、提到 red-green-refactor、或需要集成测试时使用。它只负责红—绿循环;重构归 code-review;不测私有方法,不 mock 内部协作者。输入可以是功能描述或 bug 报告,也可接收 FeatureSpec。注意:接缝必须预先确认,测试才值得保留;不要预判未来测试,也不要加投机特性。

使用场景

  • 实现购物车结算功能时,想先写 checkout(cart) 的失败测试再写实现
  • 修复缺陷时,需要先确认公开接口和接缝,再补一个能证明修复的测试
  • 准备集成测试时,要按垂直切片安排每个接缝的测试与实现
  • 评审前重构代码时,想确认既有测试测的是行为而非实现细节

适合人员

  • 负责功能交付的工程师,想在写实现前先确定公开接口和测试落点
  • 处理缺陷反馈的开发同学,需要用测试说明修复前后的行为差异
  • 带团队做重构的评审者,想排除测私有方法或内部 mock 造成的假绿灯
  • 设计集成测试的架构师,需要按接缝规划垂直切片的测试节奏