javascript – Jest Firebase:TypeError:无法读取未定义的属性’defineProperties’

前端之家收集整理的这篇文章主要介绍了javascript – Jest Firebase:TypeError:无法读取未定义的属性’defineProperties’前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前正在开发一个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)

如果我用’react’替换import import 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文件中要求firebase(而不是import),并添加一行导入react-native.除了require(‘firebase’)之外,如果不导入react-native,firebase将不会包含在测试文件中!这是我的github repo,它将引导您完成重现错误的步骤,以及如何解决它.

可能还有一个陈旧的jest缓存可能需要您运行

./node_modules/jest/bin/jest.js –no-cach

每当我改变与预处理器选项有关的任何事情时,这似乎都会发生.

See jest documentation on caching issues.

猜你在找的JavaScript相关文章