以下是关于 单元测试 的基础知识总结:
一、单元测试核心概念
1. 定义与价值
- 定义:验证程序单元(函数/类/模块)独立运行的正确性
- 核心价值:
- 快速反馈(开发阶段发现问题)
- 文档作用(描述组件预期行为)
- 支撑重构(确保修改不破坏既有功能)
2. 优秀单元测试特征(FIRST原则)
| 原则 | 说明 | 示例 |
|---|
| Fast | 快速执行(毫秒级) | 单测套件总时长 < 1分钟 |
| Isolated | 隔离环境 | 不依赖数据库/网络 |
| Repeatable | 可重复运行 | 不依赖外部状态 |
| Self-validating | 自动验证结果 | 断言明确通过/失败 |
| Timely | 及时编写(TDD最佳) | 先写测试再实现功能 |
二、基础技术体系
1. 测试框架三要素
| 要素 | 作用 | 常用工具 |
|---|
| 测试框架 | 组织运行测试 | Jest/Mocha/Vitest |
| 断言库 | 验证结果是否符合预期 | Jest-Chai/assert |
| 测试替身 | 模拟依赖对象 | Sinon/Jest-mock |
2. 基本测试结构
describe('Math Utilities', () => {let mathUtils;beforeEach(() => {mathUtils = new MathUtils();});it('should add two numbers correctly', () => {const result = mathUtils.add(2, 3);expect(result).toBe(5);});test.each([[1,1,2], [2,3,5]])('adds %i + %i to equal %i',(a, b, expected) => {expect(a &