用途
TDD 是一个测试驱动开发(Test-Driven Development)技能,围绕“红 → 绿”循环提供参考指导,目标是让这个循环产出值得保留的测试。它涵盖好测试的标准、测试放置位置、反模式以及循环规则。当用户希望以测试优先方式构建功能或修复缺陷、提到“red-green-refactor”,或需要集成测试时,可使用该技能。
主要能力
该技能提供以下方面的指导:
- 什么是好测试:测试通过公共接口验证行为,而非实现细节。代码可以完全改变,测试不应随之改变。好测试读起来像规格说明,例如“user can checkout with valid cart”明确说明存在什么能力,并且因为不关心内部结构而能在重构后继续存活。
- 接缝(seam):接缝是测试所在的公共边界,即在不深入内部的情况下观察行为的接口。测试位于接缝处,绝不针对内部实现。
- 反模式识别:包括与实现耦合(mock 内部协作者、测试私有方法或通过旁路验证)、同义反复(断言以与代码相同的方式重新计算期望值,从而按构造通过)、水平切片(先写所有测试再写所有实现)。
- 循环规则:先红后绿、一次一个切片、重构不属于该循环。
使用方式
在循环过程中使用相关指导,无需为每个切片重新加载未变化的指导。
探索代码库时,读取 CONTEXT.md(如果存在),使测试名称和接口词汇与项目领域语言一致,并尊重所触及区域的 ADR。
在约定的接缝处测试。复用已批准规格、仓库测试或当前任务已建立的接缝。当新接口或不明确接口需要决策时,与用户确认。说明所选的接缝,使测试工作集中在关键路径和复杂逻辑上。
当该决策仍未确定时,询问:“What's the public interface, and which seams should we test?”
当接口形态本身存在疑问(模块深度、接缝位置、接口应暴露什么)时,调用 Skill 工具并传入“codebase-design”以获取词汇。它是模块、接口、深度、接缝、适配器、杠杆和局部性术语的共享来源,是供查阅的参考,而非要运行的会话。
适用场景
适用于用户希望以测试优先方式构建功能或修复缺陷、提到“red-green-refactor”,或需要集成测试的场景。
限制
资料未提供该技能的具体安装命令、支持的平台、收费或价格信息。资料未提供除上述内容外的其他功能或使用步骤。