SuperAPI AI 工具集

tdd

测试与质量

查看项目

更新于 10-16 06:46

技能介绍

用途:该技能是测试驱动开发(TDD)的参考,帮助把红→绿循环产出为值得保留的测试。适用于用户想以测试优先方式构建功能或修复缺陷、提到“red-green-refactor”或需要集成测试时。

主要能力:说明什么是好测试、测试应放在哪里、反模式以及循环规则。每个循环周期都应参考这些内容,而非事后才看。探索代码库时,若存在 CONTEXT.md 应阅读,使测试名称与接口词汇匹配项目领域语言,并尊重所触及区域的 ADR。

好测试:通过公共接口验证行为,而非实现细节。代码可以完全改变,测试不应随之改变。好测试读起来像规格说明,例如“user can checkout with valid cart”,它不关心内部结构,因此能经受重构。示例见 tests.md,mock 指南见 mocking.md。

Seam(测试位置):seam 是你测试的公共边界,即无需深入内部即可观察行为的接口。测试只放在 seam 上,绝不针对内部。只测试事先商定的 seam;写任何测试前,先写下待测 seam 并与用户确认,未确认的 seam 不写测试。应询问:“公共接口是什么,我们该测试哪些 seam?”当接口形态本身存疑时,可调用 Skill 工具并传入 "codebase-design" 获取相关词汇。

反模式:实现耦合(mock 内部协作者、测试私有方法或通过旁路验证,重构时测试失败但行为未变);同义反复(断言以与代码相同方式重算期望值,构造上必然通过);水平切片(先写全部测试再写全部实现,应改为垂直切片:一个测试→一个实现→重复)。

循环规则:红先于绿,先写失败测试,再只写足够通过的代码,不预判未来测试或添加推测性功能;一次一个切片,每周期一个 seam、一个测试、一个最小实现;重构不属于该循环,属于评审阶段。

限制:资料未提供具体安装命令、平台支持、收费或价格信息。