工程开发
test-driven-development avatar

test-driven-development

强制执行测试驱动开发 (TDD),要求在编写代码前先编写失败测试,确保代码可靠性并防止过早工程化。

简介

test-driven-development 技能是软件代理的核心方法论组件,强制执行“红-绿-重构”(Red-Green-Refactor)循环。此技能专为重视软件质量、可维护性及架构完整性的开发者而设计。通过强制规定在没有相应失败测试的情况下不得编写生产代码,此技能消除了测试现有行为或编写不符合需求代码的风险。它可作为防止合理化借口、过度工程化及临时手动验证等常见陷阱的保护机制。

  • 强制执行铁律:没有失败测试就不准写生产代码;任何过早编写的代码都必须删除。

  • 引导代理完成完整的红-绿-重构循环:从编写最简化的失败测试开始,验证测试失败,实现能通过测试的最简代码,最后进行重构。

  • 推广 YAGNI(你不需要它)原则,防止添加当前测试未验证的功能或“改进”。

  • 通过创建全面的自动化测试套件来减少技术债,这些测试同时也充当了活文档。

  • 与标准 CLI 测试框架(如 npm test)集成,以验证开发过程中的状态转换。

  • 目标受众:专业软件工程师、DevOps 从业人员及处理生产级系统的技术代理。

  • 使用场景:实现新功能、修复 Bug、执行重构及管理复杂代码库中的行为变更。

  • 输入:具体的需求规格或 Bug 报告;当前项目结构的技术背景。

  • 输出:一组清晰、简洁且具备意图描述的测试,随后是干净、可投入生产的代码。

  • 实际限制:不适用于一次性原型、生成代码或配置文件,在这些情况下 TDD 可能收益递减。

  • 重要建议:如果你没看过测试失败,就不知道它是否测试了正确的内容。务必确保失败原因是预期的,而非拼写错误或环境配置问题。

仓库统计

Star 数
171,902
Fork 数
15,164
Open Issue 数
278
主要语言
Shell
默认分支
main
同步状态
空闲
最近同步时间
2026年4月29日 05:46
在 GitHub 查看