| name | unit-test-patterns |
| description | 单元测试模式 —— 测试金字塔、表驱动测试、测试夹具管理、边界值分析与 Mock 边界控制 |
| category | 测试 |
| loading | on-demand |
| triggers | {"keywords":["单元测试","unit test","pytest","jest","测试覆盖率","TDD","测试用例"]} |
单元测试模式
概述
提供单元测试的标准化方法论,覆盖测试结构设计、断言策略、测试数据管理和跨语言(Python pytest / JS Jest / Go testing)最佳实践。
使用场景
- 新项目搭建测试框架和目录结构
- 编写可维护、可读的单元测试用例
- 提升测试覆盖率至 80% 以上
- 重构遗留代码时的安全网搭建
核心原则
- 测试行为而非实现:测试"给定输入,输出和副作用是什么",不测试内部实现细节。重构不应破坏测试。
- AAA 模式(Arrange-Act-Assert):每个测试清晰分离准备、执行、断言三个步骤。单测试单概念。
- 测试要快:单元测试应在毫秒级完成。整个测试套件运行应在一分钟内。慢测试会导致开发者跳过执行。
- FIRST 原则:Fast(快)、Independent(独立无顺序依赖)、Repeatable(环境无关可重复)、Self-Validating(自动断言结果)、Timely(及时编写,TDD 为先)。
- 表驱动测试:对于多个类似输入场景,使用数据表格循环执行而非复制粘贴测试函数。
测试文件组织
src/
├── user_service.py
└── test/
└── test_user_service.py # 一一对应
检查清单