SuperAPI AI 工具集

tdd

测试与质量

查看项目

更新于 10-16 07:24

技能介绍

用途:该技能用于在实现任何功能或修复任何缺陷时,默认采用测试驱动开发(TDD),而非可选方案。触发条件是任何实现类工作。

主要能力与原则:核心原则是测试通过公共接口验证行为,而非实现细节;代码可以整体重写,测试不应随之改变。好的测试是集成风格,走真实代码路径,读起来像规格说明;坏的测试耦合实现,mock 内部协作者、测试私有方法或绕过接口直接查库。若重命名内部函数导致测试失败,说明测试的是实现而非行为。

使用方式:写第一个测试前,先加载所写语言的规范技能。该技能负责循环,语言技能负责代码,加载其一不满足另一。涉及 .go 加载 go-idiomatic;.tsx、.jsx、.vue、*.svelte 加载 frontend-best-practices;class=、className=、components/ui/ 加载 tailwind-shadcn。

工作流:1)规划:确认接口变更、确认要测试的行为并排优先级、识别深模块机会、为可测试性设计接口、列出行为清单并获用户批准。若已有契约(脚手架 PR 合入的桩),签名冻结,跳过接口设计项,直接按桩接口写测试;若测试必须改签名,走契约变更路径。无用户可问时,以工单的“要构建什么”、技术设计决策和验收标准替代,不阻塞、不擅自扩大范围,把假设写进 PR 正文。2)曳光弹:写一个测试确认一件事,先红后绿。3)增量循环:每个行为先写测试使其失败,再写最小代码使其通过,每轮后过检查清单。4)重构:全部通过后提取重复、加深模块、应用 SOLID,每步后跑测试,冻结的契约签名保持不变。

铁律:没有失败的测试就不写生产代码。先写代码就删除重来,不留作参考。写完测试要运行并观察其失败,确认失败原因是功能缺失而非笔误或导入错误。测试立即通过说明测的是已有行为,需修正测试。RED 状态下不得重构。

反模式:禁止水平切片,即先写全部测试再写全部实现;应通过曳光弹做垂直切片,一个测试对应一个实现,循环往复。

每轮检查清单:测试描述行为而非实现;只用公共接口;能经受内部重构;代码对该测试最小;不添加投机性功能。

限制:资料未提供该技能的安装命令、收费、价格、平台与效果信息。