用途:该技能用于以测试驱动的方式实现新行为、修改既有行为以及验证缺陷修复。核心原则是先写会失败的测试,再写让测试通过的代码;测试是证明,“看起来对”不算完成。
主要能力:提供 TDD 循环 RED → GREEN → REFACTOR。RED 写一个失败的测试,立即通过的测试不能证明任何事;GREEN 写最少代码使其通过,避免过度设计;REFACTOR 清理实现,每次改动后测试必须保持绿色。针对缺陷修复提供 Prove-It 模式:先写复现测试,测试失败确认缺陷存在,再实现修复,测试通过证明修复有效,最后运行完整测试套件确认无回归。
使用方式:新行为、缺陷修复、共享或复用逻辑、解析与数据转换、安全敏感流程,以及任何可能破坏既有行为的改动都应要求测试。仅文档或静态内容、琐碎配置或文案改动、测试基础设施不可用、或存在更好的验证路径(如类型检查、手动演示)时可跳过,但需记录决定与理由。测试金字塔建议约 80% 单元测试、15% 集成测试、5% 端到端测试。
编写建议:断言状态而非交互,关注结果而非内部方法调用;DAMP 优于 DRY,每个测试讲完整故事;优先真实实现而非 mock,仅在外部边界使用 fake、stub 或 mock;每个测试一个概念,命名描述行为,采用 Arrange-Act-Assert 结构。
限制与警示:无对应测试的代码、跳过复现测试的缺陷修复、首次运行即通过且无实现的测试、命名不描述行为的测试、为让套件通过而跳过测试、在无代码改动时重复运行同一测试命令,均属红旗。完成实现后应确认每个新行为都有对应测试、所有测试通过、缺陷修复包含修复前失败的复现测试、测试命名描述被验证的行为、没有测试被跳过或禁用。详细代码示例与反模式见 references/testing-patterns.md。