SuperAPI AI 工具集

tdd

编程与开发

查看项目

更新于 10-16 06:21

技能介绍

用途:该技能面向测试驱动开发(TDD),适用于用户希望以测试优先方式构建功能、修复缺陷,或提到“red-green-refactor”、集成测试的场景。它强调 TDD 的 red → green 循环,并让循环产出值得保留的测试。

主要能力与原则:测试应通过公共接口验证行为,而非实现细节;代码可以整体改变,测试不应随之改变。好测试读起来像规格说明,能经受重构而不关心内部结构。相关示例与 mock 指南分别见 tests.md 和 mocking.md。

测试位置(seams):seam 是观察行为而不深入内部的公共边界,测试只放在 seam 上,绝不针对内部实现。测试前需写下待测 seam 并与用户确认;未确认的 seam 不写测试。需提问:“公共接口是什么,我们应该测试哪些 seam?”

反模式:实现耦合——mock 内部协作者、测试私有方法或通过旁路验证(如查数据库而非接口),特征是一重构测试就坏但行为未变;同义反复——断言以代码相同方式重算期望值,如 expect(add(a, b)).toBe(a + b)、手工按同样方式推导的快照、常量与自身比较,导致构造上必然通过;水平切片——先写所有测试再写所有实现,批量测试验证想象的行为而非面向用户行为,应先做垂直切片:一个测试 → 一个实现 → 重复,每个测试是追踪子弹。

循环规则:先 red 后 green,先写失败测试,再写仅够通过的代码,不预判未来测试或添加投机功能;一次一个切片,一个 seam、一个测试、一个最小实现;重构不属于该循环,属于评审阶段(见 code-review 技能)。

限制与缺失:除上述内容外,安装命令、收费、价格、平台、效果等事实暂未提供。