"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
的文章
我使用 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
的文章