javascript - 开 Jest + 火力地堡 : TypeError: Cannot read property 'defineProperties' of undefined

标签 javascript firebase react-native jestjs

我目前正在做一个 React Native 项目,想使用 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' 替换导入状态,一切正常。那么为什么我不能使用 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(not import),并添加一行导入 react-native 。没有 importing react-native additionrequire('firebase'),firebase 将不会包含在测试文件!这是我的 github repo它将引导您完成重现错误的步骤以及如何修复它。

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

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

每当我更改与预处理器选项有关的任何内容时,这似乎都会发生。

See jest documentation on caching issues.

关于javascript - 开 Jest + 火力地堡 : TypeError: Cannot read property 'defineProperties' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40140497/

相关文章:

javascript - 带有 ruby​​ 变量的 Ajax js 语法

javascript - 对此,全局对象和全局范围的混淆

javascript - 是否可以将 D3js 图表转换为 xml?

javascript - 使用异步存储的正确/正确方法是什么?

android - React Native Android 获取设备的比率

javascript - 使用 React 进行分页,解决 JSON 数据问题

android - Google/Firebase android SDK 是否使用 GRPC?

ios - 无法在 Swift 中将从 Firebase 检索到的数组项输出到 UITableView

firebase - 当事件计数为 0 时,Firebase 受众中没有用户

javascript - react native : I getting raw data in display page