测试奖杯是什么
测试奖杯(Testing Trophy)是 Kent C. Dodds 针对前端应用提出的测试投入模型:静态检查打底、单元测试适量、集成测试占比最大、端到端测试收口。核心主张是「测试越接近用户的真实使用方式,提供的信心越高」——组件级集成测试既能覆盖多个模块的协作,又比 E2E 快得多,因此在前端项目里值得投入最多。
奖杯四层
| 层级 | 工具示例 | 说明 |
|---|---|---|
| 静态检查 | TypeScript / ESLint | 在编码期捕获类型与规范问题 |
| 单元测试 | Vitest / Jest | 覆盖纯函数与边界逻辑 |
| 集成测试 | Testing Library | 以用户视角渲染组件并交互 |
| 端到端测试 | Playwright / Cypress | 验证关键路径在真实浏览器可用 |
基本信息
| 提出者 | Kent C. Dodds,面向前端与组件化项目 |
|---|---|
| 核心主张 | 集成测试占比最大,平衡信心与速度 |
| 与金字塔关系 | 同为投入分配参考,侧重不同:金字塔偏单元,奖杯偏集成 |
| 适用边界 | 前端与组件化项目;后端高并发系统仍多沿用金字塔 |
| 落地抓手 | 用测试反馈速度与缺陷拦截层次评价配比是否合理 |
典型使用场景
- 前端测试策略讨论:确定各层投入比例时有共同参照。
- CI 时间治理:把慢而脆的测试替换为组件级集成测试。
- 新项目起步:按奖杯结构搭测试脚手架与目录约定。
- 遗留项目改造:先补集成层,逐步清理无断言的单元测试。
- 评审测试配比:检查是否出现 E2E 过多拖慢反馈的倒挂。
- 新人培训:理解各层测试各自能回答什么问题。
奖杯模型常用于前端与组件化项目;后端服务仍多沿用金字塔。两者都是投入分配的参考而非教条。
静态检查不能替代运行时测试:类型正确不等于行为正确,逻辑断言仍需测试承担。
配比服务于反馈速度:集成层变大后若单次运行变慢,应拆分或用并行把时间压回来,而不是退回全是单元测试。