用途:为 React Native 代码提供测试指导,帮助决定测什么、在哪个层级测,以及如何编写可靠的测试。适用于为新增功能、Hook 或工具函数添加测试,合并前评审改动是否被充分测试,调查本应被测试捕获的回归问题。
适用平台与版本:iOS 与 Android;React Native 0.76+,默认假定已兼容新架构(New Architecture interop),除非清单项另有说明。
主要能力与测试范围:对 Hook 和工具函数做单元测试;对面向用户的行为做组件测试,而非实现细节;对每条关键路径做端到端流程测试(如适用,可使用 Maestro);覆盖空数据、错误状态、离线、大数据集等边界情况。
编写原则:Mock 保持最小化,能使用真实实现时优先使用;不以快照测试作为主要断言;测试断言可观察的行为与输出,而非内部调用;每个测试相互独立,不依赖执行顺序。示例:错误做法是断言实现细节,如 expect(component.find('useFetchUsers')).toHaveBeenCalled();正确做法是断言用户可见内容,如 render(<UserList />) 后 expect(await screen.findByText('Ada Lovelace')).toBeOnTheScreen()。
常见陷阱:快照测试会因无害的标记改动而失败,导致团队不阅读就更新,信号价值低并侵蚀信任;过度 Mock 会让测试通过但真实集成已损坏,只应 Mock 必须的部分(网络、原生模块);测试实现细节(哪个 Hook 运行、内部状态)会让重构变得痛苦,即使行为未变;跳过边界情况(空、错误、离线)会使用户在生产中真正遇到的状态未被测试。
限制:资料未提供具体安装命令、配置步骤、收费方式或平台支持细节,暂未提供。