test-driven-development

用测试来推动开发。在实现任何逻辑、修复任何缺陷或更改任何行为时使用。在需要证明代码正常工作时、收到缺陷报告时,或准备修改现有功能时使用。

安装

热度:61

下载并解压到你的 skills 目录

复制命令,发送给智能体自动安装:

下载并安装这个技能 https://openskills.cc/api/download?slug=addyosmani-skills-test-driven-development&locale=zh&source=copy

测试驱动开发 (TDD)

技能概述


测试驱动开发是一种先写测试再写代码的开发方法,通过红绿重构循环确保代码质量,适用于实现新功能、修复 Bug 和重构代码。

适用场景


  • 实现新逻辑或功能时 - 在编写业务代码前先编写测试,明确预期行为,防止实现偏离需求

  • 修复 Bug 时 - 先用测试复现 Bug 证明问题存在,再实施修复并确保回归不会发生

  • 重构现有代码时 - 在修改代码结构前建立测试保护网,确保重构不破坏既有功能
  • 核心功能


  • TDD 红绿重构循环 - 指导开发者按照"写失败测试→写最小实现代码→重构优化"的三步循环工作,每步都有明确的验证标准

  • Prove-It 修复模式 - 强制要求为每个 Bug 编写复现测试,确保修复真正解决问题且防止回归

  • 测试金字塔方法论 - 按照单元测试 80%、集成测试 15%、E2E 测试 5% 的比例分配测试投入,最大化测试效率和信心
  • 常见问题

    什么是 TDD 的红绿重构循环?


    红绿重构是 TDD 的核心工作流程:阶段先写一个失败的测试证明功能缺失;绿阶段编写最简代码让测试通过;重构阶段在测试保护下优化代码结构。这个循环不断重复,确保每行代码都有测试覆盖。

    为什么修复 Bug 要先写测试?


    直接修改代码只能"看起来"修复了问题,但没有证据证明修复有效且不会引入新问题。先写失败测试能明确复现 Bug,修复后测试通过则证明有效,未来任何回归都会立即被该测试捕获。这就是"证明它"模式。

    单元测试和集成测试有什么区别?


    单元测试针对单个函数或类的纯逻辑,不依赖外部资源(数据库、网络、文件系统),运行速度快(毫秒级)。集成测试验证多个组件协作或跨边界操作(API 调用、数据库读写),速度较慢但覆盖真实交互。按照测试金字塔,大部分测试应该是快速的单元测试。