关于 react-native-testing
为 React Native Testing Library 和 Jest 单元及组件测试提供参考的技能。它强调按已安装版本选择指南,并将此类测试与 Maestro 端到端流程区分开来。
主要功能
- 01提供 React Native Testing Library v13 和 v14 参考
- 02根据 package.json 选择版本
- 03说明查询与交互 API
- 04提供异步测试和无障碍建议
- 05涵盖常见测试反模式
适用场景
- 01为已安装版本选择 API
- 02使用 Jest 编写 React Native 组件测试
- 03避免查询和异步测试中的常见错误
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ maikotrindade/ awesome-react-native-skills --skill react-native-testing安装后在 Claude Code 中输入/react-native-testing确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/best-practices-anti-patterns.mdcore-patterns.mdreference-v13-api.mdreference-v14-api.md详细介绍
React Native Testing Library
@testing-library/react-nativev13 和 v14 的详细 API 参考。范围: 使用 Jest + RNTL 进行单元测试和组件测试。要在真实设备/模拟器上测试端到端 UI 流程,请使用 Maestro——声明式 YAML 流程,无需编写代码,可针对构建后的应用运行。RNTL 和 Maestro 相辅相成,并非互相替代。
重要: v13 和 v14 的 API 签名、同步/异步行为和可用函数各不相同。请务必检查项目的 package.json,并加载对应版本的参考文档,不要依赖记忆中的用法。
版本检测
检查 package.json 中的 @testing-library/react-native:
- v14.x → 加载 reference-v14-api(React 19+、异步 API、
test-renderer) - v13.x → 加载 reference-v13-api(React 18+、同步 API、
react-test-renderer)
核心参考
| 主题 | 描述 | 参考文档 |
|---|---|---|
| 核心模式 | 查询优先级、render/screen、userEvent 与 fireEvent、waitFor、11 条核心规则 | core-patterns |
| v13 API(React 18) | 同步 render、完整方法表、同步 fireEvent、React 19 兼容性垫片 | reference-v13-api |
| v14 API(React 19) | 异步 render、基于 await 的 API、已移除的 API、v13→v14 迁移 codemod | reference-v14-api |
| 反模式 | 错误的查询、误用 waitFor、不必要的 act、解构、遗漏 await | best-practices-anti-patterns |
关键建议
- 查询时始终使用
screen——不要从render()中解构 - 优先使用
getByRole,并传入{ name: '...' }选项(最符合无障碍设计) - 异步元素使用
findBy*——不要组合使用waitFor和getBy* - 优先使用
userEvent而非fireEvent——交互模拟更真实 - 仅在断言元素不存在时使用
queryBy*(.not.toBeOnTheScreen()) - v14:始终对每个 API 使用
await(包括render、fireEvent、act)
评论
支持 Markdown