2017-12-22 55 views
1

indexedDB를 사용하고있는 앱용 단위 테스트에 대한 도움말을 찾고 있습니다. indexedDB 기능을 구현하기 전에 테스트가 정확했습니다. 하지만 이제는 모두 한 가지 오류가 나타납니다.Jest와 효소를 이용한 IndexedDB 테스팅 - ReferenceError : indexedDB가 정의되지 않았습니다.

ReferenceError: indexedDB is not defined 

누군가가 저에게 오류를 없애는 방법에 대한 조언을 줄 수 있습니까? 나는 정보를 검색하고 '창'또는 'indexedDB'를 모방하는 다른 방법을 시도했지만 아무런 결과도 얻지 못했습니다.

감사합니다.

답변

1

이 문제는 Dexie가 window.indexedDB을 정의 할 것으로 예상했기 때문에 발생했습니다. 실제 DOM 또는 window 범위가없는 헤드리스 모드 (Jest 사용)에서는 실행되지 않습니다. 제안하는 Dexie의 자식 문제에 해결책 깊은 찾을 수

:

우리는 또한 성공 있었
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