用途
该技能用于测试 React Native Web 应用,提供基于 Jest 与 React Native Testing Library 的测试模式与示例,帮助开发者编写组件测试、异步测试、集成测试等。
主要能力
- 组件测试:使用 React Native Testing Library 的 render、screen、fireEvent 等 API 测试用户交互与行为,例如验证按钮点击是否触发 onPress。
- Jest 配置:提供针对 React Native Web 的 jest.config.js 配置示例,包括 preset、moduleNameMapper(将 react-native 映射为 react-native-web)、transformIgnorePatterns 与 setupFilesAfterEnv。
- 测试工具封装:示例展示如何封装 renderWithProviders,在渲染时注入 ThemeProvider 等上下文。
- 异步测试:使用 waitFor 处理异步操作,例如等待数据加载完成并验证加载状态消失。
- 模块 Mock:示例展示如何 Mock 导航(@react-navigation/native)等依赖。
- 自定义 Hook 测试:使用 renderHook 与 act 测试 Hook 的状态变化。
- Context 测试:在 AuthProvider 等上下文包裹下测试受保护组件。
- 快照测试:使用 toJSON 与 toMatchSnapshot 进行快照比对。
- 集成测试:结合 NavigationContainer 与 Stack Navigator 测试页面跳转流程。
- 常见模式:表单验证、列表渲染与空状态、无障碍属性(accessibility state、hint)测试。
- 反模式说明:避免测试实现细节、避免使用 querySelector 等 DOM 方法、避免过度耦合的样式断言、注意清理 Mock。
使用方式
资料中提供了大量代码示例,涵盖导入语句、测试用例编写、Jest 配置、Mock 写法等。开发者可参照这些示例在项目中编写测试。资料未提供安装命令或具体的安装步骤。
适用场景
适用于使用 React Native Web 构建应用并需要编写单元测试、组件测试、集成测试的开发者,尤其是使用 Jest 与 React Native Testing Library 的项目。
限制
资料未提供该技能的收费、价格、平台支持范围、性能效果等具体信息。部分内容(如安装方式、版本要求)暂未提供。