React Native Jest测试报错:NativeModule.RNDeviceInfo is null
解决Jest测试中react-native-device-info的NativeModule.RNDeviceInfo null错误
问题核心是Jest运行在Node.js环境中,无法加载React Native的原生模块——即便你没用到react-native-device-info的功能,只要helper.js导入了它,Jest就会尝试初始化该模块导致报错。以下是两种可行的解决方法:
方法一:全局Mock模块(推荐)
在你的jest.setup.js文件中添加全局mock配置,所有测试用例都会生效:
jest.mock('react-native-device-info', () => ({ // 由于你的helper.js未使用该模块的任何方法,这里留空即可 }));
方法二:单个测试文件中Mock
如果只想在当前测试中生效,直接在测试文件开头添加mock语句:
jest.mock('react-native-device-info'); import helper from "./helper"; it('测试isHex函数', () => { const num = "0x13ad"; // 注意:你的正则要求字符串以`0x`开头,原测试用例的"13ad"会返回false,这里修正为符合规则的输入 expect(helper.isHex(num)).toBe(true); const num1 = "12z"; expect(helper.isHex(num1)).toBe(false); })
额外提示
你的isHex函数正则为/^0x[0-9a-f]+$/i,要求字符串必须以0x开头,原测试用例中的"13ad"并不匹配该规则,会返回false,如果这不符合你的预期,需要调整正则表达式或测试用例输入。
内容的提问来源于stack exchange,提问作者user938363
相关产品推荐
相关产品推荐

