关于jest:Jest-React-Native-Mock-AppState-TypeError
问题记录背景:通过 Jest 和 React Testing Library 对 React Native 做自动化测试问题: 代码中呈现 AppState 的应用 import { AppState } from 'react-native';AppState.removeEventListener('change', handleAppStateChange);报错:TypeError: import_react_native.AppState.removeEventListener is not a function jest.config.js 配置应用了 React Native 预设 module.exports = { preset: 'react-native', ...通过排查发现是因为 React Native 提供的 jest mock 文件缺失局部办法 门路:*/react-native/jest/setup.js .mock('react-native/Libraries/AppState/AppState', () => ({ addEventListener: jest.fn(() => ({ remove: jest.fn(), })), }))解决方案:我的项目长期计划是将 packages/react-native/jest/setup.js 拷贝下来,减少 react-native/Libraries/AppState/AppState 模块的 removeEventListener 和 currentState办法的mock .mock('react-native/Libraries/AppState/AppState', () => ({ addEventListener: jest.fn(() => ({ remove: jest.fn(), })), removeEventListener: jest.fn(), currentState: jest.fn(), }))而后放在我的项目仓库中在 jest.setup.js 文件头部引入 ...