前端测试

从组件、页面交互到关键旅程 E2E,组织前端测试分层与常见边界的实践入口。

#type / howto #status / growing #tech / dev / test

[!info] related notes

前端测试

目标

前端测试的重点不是把所有问题都推给浏览器 E2E,而是把验证拆成不同粒度:

  • 组件测试
  • 页面/容器交互测试
  • 少量关键旅程 E2E

更稳的目标是:大量快速小测试,少量高价值系统测试。

步骤

1. 组件测试先覆盖稳定行为

优先测这些:

  • 表单校验
  • 错误提示
  • 状态展示
  • 交互分支
  • 纯展示组件的输入输出行为

这里更适合关注用户可见结果,而不是组件内部 state 如何组织。

2. 页面级测试验证容器和状态协作

这一层更适合测:

  • 页面初始化
  • 数据加载后的不同 UI 分支
  • 请求失败与重试
  • 状态管理与视图联动

如果后端还没稳定,可以先基于共享 contracts 和 mock 数据推进这层测试。

3. E2E 只留关键旅程

典型例子:

  • 登录
  • 提交订单
  • 发起退款
  • 核心搜索或查询路径

不要把所有边角逻辑都塞给 E2E,否则很容易得到慢而脆的测试集。

验证

前端测试里最重要的验证原则是:尽量测用户看得见、点得到、感知得到的行为。

更稳的定位方式通常是:

  • role
  • text
  • label
  • 可访问名称

而不是依赖脆弱的 DOM 结构和 CSS class。

常见问题

只会 mock,不会分层

如果所有前端测试都只剩“写死假数据看页面能不能渲染”,那还没形成完整测试体系。

把太多验证推给 E2E

这会让反馈越来越慢,也让 UI 测试越来越难维护。

过度贴实现

如果测试总盯着内部状态、组件私有细节和临时 DOM 结构,重构成本会非常高。

最短记忆方式

前端测试优先测用户可见行为;小测试打底,关键旅程少量 E2E 兜住。

创建于 2026/2/21 更新于 2026/5/27