"ReferenceError: indexedDB is not defined" when testing React component with Jest

"ReferenceError: indexedDB is not defined" when testing React component with Jest

我使用 Create React App 创建了一个 React App,它使用了 IndexedDB。

当我尝试 运行 测试时出现此错误:

[UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason "ReferenceError: indexedDB is not defined".] {
  code: 'ERR_UNHANDLED_REJECTION'
}

我知道测试服是 运行 在没有 IndexedDB 的无头浏览器中。

我该如何处理这种情况?

实际上,Jest 是用来在内存中模拟 DOM,而不是在实际的无头浏览器中。因此,您必须模拟那种 API 才能使您的测试通过。

我找到了一篇解释 how to mock indexedDB in Jest

的文章