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

Create React App项目中如何配置Jest实现IndexedDB Mock无报错

Create React App 下IndexedDB Mock 正确配置方案

Create React App(简称CRA)默认封闭了Jest配置的自定义入口,直接在package.json中添加jest字段的配置会被拦截报错,无需eject也无需覆盖默认配置,可通过以下两种方式实现需求:

  • 第一步:先删除package.json中你自行添加的整个jest配置块,该配置CRA不识别会触发报错,devDependencies中已经安装的fake-indexeddb等依赖保留即可,无需改动。

方案1:全局生效(所有测试用例自动加载IndexedDB mock)

CRA默认会自动执行src目录下的setupTests.js文件内的所有代码,无需额外配置。
操作步骤:

  1. 进入src目录,找到setupTests.js(如果不存在就新建该文件)
  2. 在文件顶部添加如下代码:
require('fake-indexeddb/auto');
// 若使用ESModule语法,可写为 import 'fake-indexeddb/auto'
  1. 可以删除对应测试文件中单独引入fake-indexeddb/auto的代码,全局引入后所有测试运行前都会自动注入mock的IndexedDB对象。

方案2:局部生效(仅给需要的测试文件引入mock)

如果不需要所有测试都加载IndexedDB mock,可以只在用到IndexedDB的测试文件顶部第一行引入,注意要放在引入Dexie等依赖的前面,避免初始化时找不到全局IndexedDB对象,示例代码:

// 第一行先引入fake-indexeddb
require('fake-indexeddb/auto');
const Dexie = require("dexie");
const db = new Dexie("PersonsDB");

// 后续测试逻辑

配置完成后重新运行测试命令即可正常运行,不会再出现配置不支持的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 05:39:02