簡體   English   中英

Jest + Firebase:TypeError:無法讀取undefined的屬性'defineProperties'

[英]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

每當我改變與預處理器選項有關的任何事情時,這似乎都會發生。

請參閱有關緩存問題的jest文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM