用途:该技能用于在实现任何功能或修复缺陷之前,先编写测试,通过红-绿-重构循环保证代码行为被测试覆盖。核心原则是:如果没有亲眼看到测试失败,就不知道它测的是不是正确的东西。
主要能力与流程:
- RED:写一个最小测试,描述应发生的行为,要求单一行为、命名清晰、尽量使用真实代码而非 mock。
- 验证 RED:必须运行测试并确认它因功能缺失而失败,而非因拼写错误或报错失败。命令示例:npm test path/to/test.test.ts。
- GREEN:编写让测试通过的最简代码,不额外添加功能或重构无关代码。
- 验证 GREEN:再次运行测试,确认该测试通过、其他测试仍通过、输出无错误与警告。
- REFACTOR:仅在绿灯后进行去重、改进命名、抽取辅助函数,保持测试绿色,不添加新行为。
- 重复:为下一个功能编写下一个失败测试。
适用场景:新功能、缺陷修复、重构、行为变更。例外情况包括一次性原型、生成代码、配置文件,但需询问人类伙伴。
铁律:没有失败的测试,就不写生产代码。若先写了代码,必须删除并从头开始,不保留作参考、不在写测试时改编、不看它。
限制与要求:测试应在实现前失败;若测试立即通过,说明测的是已有行为,需修正测试;若测试报错,需修错直至正确失败。完成前需检查:每个新函数/方法都有测试、亲眼看到每个测试先失败、失败原因符合预期、写了最简代码、全部测试通过、输出无错误警告、尽量使用真实代码、覆盖边界与错误情况。资料未提供安装方式、收费、平台或具体配置文件等信息。