概述

  • 核心:业务逻辑→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 () => {
  // ... 打开页面→登录→支付→断言
});