You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 05:15:32