关于 test-first
面向开发者的测试优先开发技能,采用 Red-Green-Refactor 循环,并提供测试结构、边界情况覆盖及编写可靠可维护测试的实践。
主要功能
- 01Red-Green-Refactor 工作流
- 02覆盖正常路径与边界情况
- 03Arrange-Act-Assert 结构
- 04独立且描述清晰的测试
- 05快速单元测试指导
适用场景
- 01从编写失败测试开始实现功能
- 02检查边界值与错误行为
- 03围绕单一概念组织测试
- 04维护易于管理的单元测试
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ s-hiraoku/ synapse-a2a --skill test-first安装后在 Claude Code 中输入/test-first确认已加载。
详细介绍
测试优先开发技能
测试优先开发(TDD)确保代码是为满足特定的预定义要求而编写的,从而提高质量并改善设计。
TDD 工作流
- Red:为一小段功能编写一个失败的测试。
- Green:编写通过测试所需的最少代码。
- Refactor:清理代码,同时确保测试仍然通过。
测试设计原则
1. 全面覆盖
- 正常情况:测试预期的“顺利路径”行为。
- 边界值:测试有效范围边缘的输入(例如,0、max_int、空字符串)。
- 边缘情况:测试异常或极端条件(例如,网络超时、磁盘已满、null 值)。
- 错误处理:验证系统能否优雅地失败并返回适当的错误消息。
2. 结构(Arrange-Act-Assert)
遵循 AAA 模式,使测试清晰且易于维护:
- Arrange:设置必要的前置条件和输入。
- Act:执行正在测试的函数或方法。
- Assert:验证结果是否符合预期。
最佳实践
- 每个测试一个断言:尽量让每个测试用例只测试一个概念。
- 描述性命名:清楚地命名测试(例如,
test_should_reject_invalid_api_key)。 - 相互独立:确保测试之间互不依赖,也不依赖特定的执行顺序。
- 快速执行:保持单元测试快速运行,以鼓励频繁执行。
评论
支持 Markdown