用途:指导编写、审查和修复 React Native 组件测试。资料强调训练数据中的 @testing-library/react-native 可能过时,API 签名、同步/异步行为随 v13 与 v14 不同,应以技能参考文件与项目实际源码为准。
版本判断:查看 package.json。v14.x 加载 references/api-reference-v14.md(React 19+、异步 API、test-renderer);v13.x 加载 references/api-reference-v13.md(React 18+、同步 API、react-test-renderer)。按版本参考确定 render、fireEvent 同步/异步、screen API、配置与依赖。
查询优先级:getByRole > getByLabelText > getByPlaceholderText > getByText > getByDisplayValue > getByTestId(最后手段)。变体:getBy*/getAllBy* 立即返回并抛错;queryBy*/queryAllBy* 用于检查不存在;findBy*/findAllBy* 异步等待。
交互:优先 userEvent(始终异步),如 userEvent.setup() 后 await user.press、longPress、type、clear、paste、scrollTo;fireEvent 仅在 userEvent 不支持时使用。断言使用 RNTL 自带的 Jest matcher,如 toBeOnTheScreen、toBeVisible、toBeEnabled、toHaveTextContent 等。
规则:用 screen 查询而非从 render() 解构;优先 getByRole 配合 name 选项;queryBy* 仅用于否定断言;异步元素用 findBy* 而非 waitFor+getBy*;不在 waitFor 中放副作用;每个 waitFor 一个断言;勿传空回调;不手动包 act() 或调用 cleanup();优先 ARIA 属性而非旧 accessibility* 属性。
限制:具体配置、安装命令、依赖清单与迁移细节需查阅对应版本参考文件;本资料未提供相关命令与更完整的约定细节。