测试驱动开发 (TDD)
来自 Superpowers 项目的测试驱动开发 Skill,强制执行 TDD 方法论:先编写测试,观察失败,再编写最小代码通过测试。该 Skill 通过系统化的测试流程确保代码质量和测试覆盖率。
核心原则
如果你没有观察到测试失败,就无法确定它测试了正确的内容。
这是 TDD 的核心理念:必须先看到测试失败(红色),然后通过编写代码使其通过(绿色),最后进行重构。这个循环确保测试真正验证了代码的行为。
TDD 循环
1. 红色(Red)- 编写失败的测试
编写一个测试,描述期望的行为。运行测试,确认它失败。失败证明测试正在检查正确的内容。
2. 绿色(Green)- 编写最小代码
编写刚好足够的代码使测试通过。不要过度设计或添加额外功能。专注于满足当前测试的需求。
3. 重构(Refactor)- 改进代码
在测试通过后,改进代码质量。消除重复,提高可读性,优化结构。测试保证重构不会破坏功能。
何时使用
始终使用 TDD
新功能开发:为新功能编写测试,驱动设计和实现。测试先行确保功能的可测试性和清晰的接口。
Bug 修复:先编写重现 bug 的测试。测试失败证明 bug 存在。修复后测试通过,防止 bug 再次出现。
重构:在重构前确保有完整的测试覆盖。测试作为安全网,确保重构不改变行为。
行为变更:修改现有功能时,先更新或添加测试。测试描述新的期望行为。
例外情况(询问人类伙伴)
一次性原型:快速验证概念的原型代码。如果原型会变成生产代码,应该补充测试。
生成的代码:自动生成的代码(如 ORM 模型、API 客户端)。但生成代码的使用逻辑仍需测试。
配置文件:纯配置文件(JSON、YAML 等)。但配置的加载和验证逻辑需要测试。
TDD 的好处
设计改进:测试先行迫使思考接口和依赖。导致更模块化、可测试的设计。
文档作用:测试描述代码的预期行为。新团队成员通过测试了解代码用途。
回归防护:测试防止已修复的 bug 再次出现。保护代码免受意外破坏。
重构信心:完整的测试覆盖使重构更安全。可以大胆改进代码,测试会捕获错误。
调试效率:测试失败精确指出问题位置。减少调试时间,快速定位问题。
实践指南
小步前进:每次只添加一个小测试。保持测试和实现的增量进行。
测试行为而非实现:测试公共接口和行为,不测试内部实现细节。这使重构更容易。
保持测试简单:每个测试应该清晰、简洁、易于理解。复杂的测试难以维护。
快速反馈:测试应该快速运行。慢测试会打断开发流程。
独立测试:每个测试应该独立运行。测试之间不应有依赖关系。
应用价值
该 Skill 通过强制执行 TDD 方法论,显著提升代码质量和可维护性。测试先行的方法确保代码从设计之初就是可测试的,避免了后期补充测试的困难。
对于团队开发,TDD 提供了一致的开发流程和质量标准。测试作为活文档,帮助团队成员理解代码意图。完整的测试覆盖使代码库更加稳定和可靠。
通过系统化的测试流程,该 Skill 帮助开发者养成良好的测试习惯,构建高质量、易维护的代码库。
评论
还没有评论。成为第一个评论的人!
相关工具
Systematic Debugging Skill
github.com/obra/superpowers
Superpowers项目的系统化调试Skill,强制要求在修复前必须找到根本原因,防止随机修复和快速补丁,适用于测试失败、生产bug、性能问题等技术故障,确保真正解决问题而非掩盖症状。
Verification Before Completion Skill
github.com/obra/superpowers
Superpowers项目的完成前验证Skill,要求在宣布任务完成、问题修复或测试通过之前必须执行验证命令并查看结果,确保所有声明都有实际证据支撑,防止未经验证的虚假完成。
Writing Plans Skill
github.com/obra/superpowers
Superpowers项目的计划编写Skill,在零背景假设下制定详尽实施方案,拆分为2-5分钟原子步骤,遵循TDD、DRY、YAGNI原则,记录文件变更、测试策略和验证点,确保高质量实施。
相关洞察
Skills + Hooks + Plugins:Anthropic 如何重新定义 AI 编程工具的扩展性
深入解析 Claude Code 的 Skills、Hooks 和 Plugins 三位一体架构,探讨为什么这种设计比 GitHub Copilot 和 Cursor 更先进,以及它如何通过开放标准重新定义 AI 编程工具的扩展性。

Obsidian + Claude Skills:真正让你的知识管理效率起飞
真正让 Obsidian 起飞的,不只是接入 Claude,而是接入一整套「Claude Skills」。
Claude Code 的下一站,不是代码,而是你本地的 Obsidian 知识库
探索 Obsidian + Claude Code 如何从知识管理工具转变为你的私密 AI 助手。包含 obsidian-skills、Claudian 插件、Claudesidian 模板的完整指南,以及数据隐私与 AI 能力兼得的最佳实践。