用途:该技能面向测试驱动开发(TDD),适用于用户希望以测试先行方式构建功能或修复缺陷、提到“red-green-refactor”或需要集成测试的场景。它提供让红—绿循环产出值得保留的测试的参考,包括好测试的定义、测试放置位置、反模式以及循环规则,每个部分在每次循环中都适用,应在循环前和循环中查阅,而非事后。
主要能力:说明好测试应通过公共接口验证行为,而非实现细节;代码可以完全改变,测试不应随之改变。好测试读起来像规格说明,例如“用户可以用有效购物车结账”,并能在重构后存活,因为它不关心内部结构。资料提到可参考 tests.md 获取示例、mocking.md 获取模拟指南。
测试位置(接缝):接缝是测试所在的公共边界,即无需深入内部即可观察行为的接口。测试只放在预先商定的接缝处,写任何测试前先写下待测接缝并与用户确认,未确认的接缝不写测试。应询问“公共接口是什么,我们应该测试哪些接缝?”当接口形态本身存疑时,可使用 /codebase-design 技能获取模块、接口、深度、接缝、适配器、杠杆和局部性等术语,它是参考而非要运行的会话。
反模式:实现耦合——模拟内部协作者、测试私有方法或通过侧信道验证(如查询数据库而非使用接口),表现为重构后行为未变但测试失败。同义反复——断言以与代码相同的方式重算期望值,如 expect(add(a, b)).toBe(a + b),或手工以同样方式推导快照、常量断言等于自身,导致测试按构造通过,永远无法与代码产生分歧;期望值必须来自独立事实来源,如已知正确的字面量、已演算的示例或规格。水平切片——先写所有测试再写所有实现,批量测试验证的是想象的行为,测试对真实变化不敏感,且在理解实现前就锁定测试结构;应改用垂直切片,一个测试→一个实现→重复,每个测试都是响应上一轮所学到的内容的曳光弹。
循环规则:红先于绿,先写失败测试,再只写足够通过它的代码,不要预判未来测试或添加推测性功能。一次一个切片,每轮一个接缝、一个测试、一个最小实现。重构不属于循环,它属于评审阶段(见 code-review 技能),而非红→绿实现循环。
探索代码库时,应阅读 CONTEXT.md(若存在),使测试名称和接口词汇与项目领域语言一致,并尊重所触及区域的 ADR。
限制:资料未提供安装命令、平台支持、收费或价格信息,暂未提供。