框架指南
本指南提供各前端框架在浏览器模式下的测试配置示例。
前置条件
在继续之前,请确保你已完成浏览器模式的基础配置。你可以通过以下两种方式初始化:
- 自动初始化:运行
npx rstest init browser命令 - 手动配置:参考 快速开始 指南
完成后再按照本页指南进行框架特定的配置。
框架支持
目前浏览器模式仅对 React 提供开箱即用的支持,其他框架(如 Vue、Svelte 等)将在未来支持。
React
安装依赖
@rstest/browser-react 是 Rstest 浏览器模式下测试 React 的官方工具包,它提供:
render:将 React 组件渲染到真实浏览器的 DOM 中,返回容器元素供你查询和断言renderHook:在不创建包装组件的情况下测试自定义 Hook- 自动清理:每个测试前自动卸载上一个测试渲染的组件,避免测试间相互影响
组件测试
render 函数将组件渲染到 DOM 后,返回 container(组件的容器元素)。你可以用原生 DOM API 或 Testing Library 查询元素并进行断言:
src/Counter.test.tsx
如果组件依赖 Context(如 Theme、Auth、Store),使用 wrapper 选项包裹 Provider:
Hook 测试
renderHook 让你无需编写包装组件就能测试自定义 Hook。它返回:
result.current:Hook 的当前返回值,会随 Hook 更新而变化act:用于包裹会触发状态更新的操作,确保断言在更新完成后执行rerender:使用新的 props 重新调用 Hook
src/useCounter.test.tsx
如果 Hook 依赖 props,使用 initialProps 传入初始值,rerender 模拟 props 变化:
更多配置
- React Strict Mode:使用
configure({ reactStrictMode: true })启用,帮助发现潜在问题 - 手动清理:默认每个测试前自动清理。如需手动控制清理时机,从
@rstest/browser-react/pure导入并调用cleanup()
完整 API 请参考包文档。
Vanilla JS/TS
对于不使用框架的项目,可以直接使用原生 DOM API 进行测试。
安装依赖(可选)
如果你希望使用 Testing Library 的查询方法,可以安装以下依赖:
示例测试
使用原生 DOM API 测试:
src/counter.test.ts
使用 Testing Library 测试:
src/dropdown.test.ts
测试 Web components
src/my-element.test.ts
多框架项目
如果你的项目同时包含多个框架,可以使用 projects 配置为不同框架设置独立的测试环境:
rstest.config.ts