以下是关于 单元测试 的基础知识总结:
一、单元测试核心概念
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 &