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

Jest测试模拟react-native-device-info时报Cannot find module错误如何解决

问题原因

这个报错是Jest在执行mock逻辑前,默认会先查找react-native-device-info的真实模块路径,找不到就会抛出解析错误。

解决方法
  • 方案1:安装真实依赖(推荐)
    如果你的项目本身确实依赖这个库,只是测试时需要mock,直接安装dev依赖即可:
    npm install react-native-device-info --save-dev
    安装完成后重新运行测试即可。

  • 方案2:使用虚拟mock
    如果项目不需要真实使用这个库,仅测试时需要mock,可以给jest.mock添加第三个参数开启虚拟mock,跳过真实模块查找:
    修改testenv.js里的mock代码为:

jest.mock('react-native-device-info', () => {
    return {
        getModel: jest.fn(),
        getVersion: jest.fn(),
        getBuildNumber: jest.fn(),
        getBundleId: jest.fn(),
    };
}, { virtual: true });
  • 方案3:修正Jest配置
    如果已经安装了依赖还是报错,检查jest.config.js(或package.json里的jest字段)的配置:
  1. 确保添加了react-native预设
  2. 确保moduleDirectories包含node_modules
    配置示例:
module.exports = {
  preset: "react-native",
  moduleDirectories: ["node_modules", "src"],
  // 其余原有配置保持不变
}

内容的提问来源于stack exchange,提问作者Bomber

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 21:54:03