[英]Jest + Firebase: TypeError: Cannot read property 'defineProperties' of undefined
我目前正在開發一個react本機項目,並希望使用Firebase JS SDK。 為了熟悉它的所有API,我想到了用Jest編寫一些學習測試。 這是我的測試:
import Firebase from 'firebase';
describe('Firebase', function() {
it('should work', function() {
expect(null).toBeNull()
})
});
不幸的是我收到了這個錯誤:●測試套件無法運行
TypeError: Cannot read property 'defineProperties' of undefined
at node_modules/firebase/app-node.js:18:234
at Object.<anonymous> (node_modules/firebase/app-node.js:23:260)
at Object.<anonymous> (node_modules/firebase/firebase-node.js:8:16)
at Object.<anonymous> (firebase.test.js:1:104)
如果我用import React from 'react'
替換import React from 'react'
的導入狀態一切正常。 那么為什么我不能使用Firebase來測試一些API調用。
這是我的package.json
:
{
...,
"dependencies": {
"firebase": "^3.5.0",
"react": "15.3.2",
"react-native": "0.35.0"
},
"jest": {
"preset": "jest-react-native"
},
"devDependencies": {
"babel-jest": "16.0.0",
"babel-preset-react-native": "1.9.0",
"jest": "16.0.1",
"jest-react-native": "16.0.0",
"react-test-renderer": "15.3.2"
}
}
問題是安裝和配置“jest-react-native”和“react-native”預設會破壞我們“導入”firebase的能力! 修復是在test.js文件中require
firebase( 而不是 import
),並添加一行導入react-native
。 除了 require('firebase')
之外 ,如果沒有import
react-native
,firebase將不會包含在測試文件中! 這是我的github repo ,它將引導您完成重現錯誤的步驟,以及如何解決它。
可能還有一個陳舊的jest緩存,可能需要您運行
./node_modules/jest/bin/jest.js --no-cach
每當我改變與預處理器選項有關的任何事情時,這似乎都會發生。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.