金字塔底层是单元测试(快、多、覆盖逻辑),中间是集成测试(验证模块协作),顶层是 E2E(验证完整用户流程,慢而少)。
比例失衡是常见问题:全写 E2E 又慢又脆,没有单测则逻辑无保障。合理配比才是健康的测试体系。
核心价值:测试是文档与安全网,让改动有底气、回归有保障。
写出有价值的用例。
主要功能正确工作。
空值、极值、临界值。
错误处理与降级。
越权、非法输入。
mock 依赖、隔离测试。
高频路径的性能断言。
从零到可持续的测试。
明确哪些是关键路径、用什么层级测,合理配比。
接入测试框架(Jest 等),配好覆盖率与 CI 联动。
优先覆盖核心逻辑与高频路径,逐步扩充。
让测试进 CI,提交即跑,拦截回归。
金字塔各层的特点。
| 层级 | 速度 | 数量 | 覆盖 |
|---|---|---|---|
| 单元测试 | 快 | 多 | 逻辑细节 |
| 集成测试 | 中 | 中 | 模块协作 |
| E2E 测试 | 慢 | 少 | 完整流程 |
不要唯指标论。优先覆盖核心与高风险逻辑,关键模块 70%+,其余按价值取舍。
测试耦合实现细节会脆弱。测行为而非实现,抽离测试替身,让测试跟随需求而非代码。
TDD(先测后写)适合逻辑密集场景,能倒逼设计。不是所有场景都适合,可作为工具掌握。
组件测试测行为与渲染结果,用 Testing Library 这类贴近用户视角的库,避免测实现细节。