概述
- 核心:业务逻辑→Jest;用户流程→E2E;能用Jest就不用E2E。
- 最小保障:合并请求跑核心E2E(登录/付费),每日全量E2E。
- 新增:每个新组件写渲染/交互测试;每条关键业务写单元测试。
- 参考:前端自测清单,资深前端实践对比。
具体做法
- 何时用Jest:纯函数/状态机/Hook、副作用隔离的逻辑。
- 何时用E2E:页面跳转、权限、支付等真实浏览器才能验证的路径。
- 组织层级:
- 组件:渲染+交互(Jest+Testing Library)
- 业务用例:Jest覆盖核心分支
- 关键路径:E2E覆盖“登录→关键操作→结果”
- 运行策略:
- PR:仅核心E2E
- 每日:全量E2E
示例
// jest: 纯逻辑
test('calc price', () => {
// ... 断言纯函数/状态机
});
// e2e: 关键路径
it('login and pay', async () => {
// ... 打开页面→登录→支付→断言
});