gpt4 book ai didi

javascript - 使用 Jest 和 enzyme 进行 IndexedDB 测试 - ReferenceError : indexedDB is not defined

转载 作者:数据小太阳 更新时间:2023-10-29 06:00:02 25 4
gpt4 key购买 nike

我正在为我的应用程序寻求单元测试方面的帮助,我正在使用 indexedDB。在我实现 indexedDB 功能之前,测试是正确的。但是现在,对于所有这些,我都看到一个错误:

ReferenceError: indexedDB is not defined

有人可以给我建议如何消除该错误吗?我正在搜索信息,并尝试了不同的方法来模拟 windowindexedDB,但没有结果。

最佳答案

这个问题是由于 Dexie 期望 window.indexedDB 被定义,当以没有真正的 DOM 或 的 headless 模式(使用 Jest)运行时,情况并非如此窗口范围。

在 Dexie git issues 中找到了一个解决方案,建议:

const Dexie = require('dexie')

Dexie.dependencies.indexedDB = require('fake-indexeddb')
Dexie.dependencies.IDBKeyRange = require('fake-indexeddb/lib/FDBKeyRange')

我们也取得了成功:

import Dexie from 'dexie';
import indexedDB from 'fake-indexeddb';

Dexie.dependencies.indexedDB = indexedDB;

原始问题的链接: https://github.com/dfahlander/Dexie.js/issues/495

或者根据文档,您可以提供 indexedDB 选项,例如:

import Dexie from 'dexie';
import indexedDB from 'fake-indexeddb';

var db = new Dexie("MyDatabase", { indexedDB: indexedDB });

文档链接:http://dexie.org/docs/Dexie/Dexie

关于javascript - 使用 Jest 和 enzyme 进行 IndexedDB 测试 - ReferenceError : indexedDB is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47934383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com