Unit testing TypeError:_reactNativeLanguages.default.addEventListener不是一个简单的函数

Unit testing TypeError:_reactNativeLanguages.default.addEventListener不是一个简单的函数,unit-testing,react-native,jestjs,Unit Testing,React Native,Jestjs,我已经完成了我的第一个react本机应用程序。现在,我想使用jest进行单元测试并获得整个应用程序的代码覆盖率。我使用过npm包,如, splash test.js: import React from 'react'; import Splash from '../Src/components/authentication/Splash'; import renderer from 'react-test-renderer'; test('renders correctly',()=&g

我已经完成了我的第一个react本机应用程序。现在,我想使用jest进行单元测试并获得整个应用程序的代码覆盖率。我使用过npm包,如

splash test.js:

import React from 'react';
import Splash from '../Src/components/authentication/Splash';

import renderer from 'react-test-renderer';


test('renders correctly',()=>{
const tree = renderer.create(
<Splash />
).toJSON();
expect(tree).toMatchSnapshot();
})
jest.mock('react-native-languages', () => ({
RNLanguages: {
language: 'en',
languages: ['en'],
},
}));

{
  "name": "app-name",
  "version": "1.0.4",
  "private": true,
  "rnpm": {
    "assets": [
      "Src/assets/fonts/"
    ]
  },
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest --coverage --coverageDirectory=output/coverage/jest"
  },
  "dependencies": {
    "i18n-js": "^3.1.0",
    "react": "16.6.3",
    "react-native": "0.57.8",
    "react-native-fast-image-zoom-viewer": "^2.3.0",
    "react-native-firebase": "^5.1.1",
    "react-native-gifted-chat": "^0.7.2",
    "react-native-image-crop-picker": "^0.21.3",
    "react-native-image-zoom-viewer": "^2.2.25",
    "react-native-languages": "^3.0.1",
    "react-native-material-dropdown": "^0.11.1",
    "react-native-modal": "^7.0.2",
    "react-native-permissions": "^1.1.1",
    "react-native-progress": "^3.5.0",
    "react-native-restart": "0.0.9",
    "react-native-spinkit": "^1.1.1",
    "react-native-swiper": "^1.5.14",
    "react-native-view-toast": "0.0.1",
    "react-navigation": "^3.0.8",
    "react-redux": "^6.0.0",
    "realm": "^2.22.0",
    "redux": "^4.0.1",
    "redux-thunk": "^2.3.0",
    "rn-fetch-blob": "^0.10.15",
    "tipsi-stripe": "^7.1.0"
  },
  "devDependencies": {
    "babel-jest": "^23.6.0",
    "jest": "^23.6.0",
    "jest-junit": "^6.2.1",
    "metro-react-native-babel-preset": "^0.51.0",
    "react-test-renderer": "^16.6.3"
  },
  "jest": {
    "preset": "react-native",
    "transform": {
      "^.+\\.(js)$": "<rootDir>/node_modules/react-native/jest/preprocessor.js"
    },
    "setupFiles": [
      "./test/env.js"
    ],
    "coverageReporters": [
      "text"
    ],
    "reporters": [
      "default",
      "jest-junit"
    ],
    "collectCoverageFrom": [
      "Src/**/*.{js,jsx}",
      "!/node_modules/"
    ],
    "transformIgnorePatterns": [
      "node_modules/(?!(react-native|react-native-languages)/)"
    ]
  },
  "jest-junit": {
    "output": "output/coverage/junit/junit.xml",
    "usePathForSuiteName": "true"
  }
}

package.json:

import React from 'react';
import Splash from '../Src/components/authentication/Splash';

import renderer from 'react-test-renderer';


test('renders correctly',()=>{
const tree = renderer.create(
<Splash />
).toJSON();
expect(tree).toMatchSnapshot();
})
jest.mock('react-native-languages', () => ({
RNLanguages: {
language: 'en',
languages: ['en'],
},
}));

{
  "name": "app-name",
  "version": "1.0.4",
  "private": true,
  "rnpm": {
    "assets": [
      "Src/assets/fonts/"
    ]
  },
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest --coverage --coverageDirectory=output/coverage/jest"
  },
  "dependencies": {
    "i18n-js": "^3.1.0",
    "react": "16.6.3",
    "react-native": "0.57.8",
    "react-native-fast-image-zoom-viewer": "^2.3.0",
    "react-native-firebase": "^5.1.1",
    "react-native-gifted-chat": "^0.7.2",
    "react-native-image-crop-picker": "^0.21.3",
    "react-native-image-zoom-viewer": "^2.2.25",
    "react-native-languages": "^3.0.1",
    "react-native-material-dropdown": "^0.11.1",
    "react-native-modal": "^7.0.2",
    "react-native-permissions": "^1.1.1",
    "react-native-progress": "^3.5.0",
    "react-native-restart": "0.0.9",
    "react-native-spinkit": "^1.1.1",
    "react-native-swiper": "^1.5.14",
    "react-native-view-toast": "0.0.1",
    "react-navigation": "^3.0.8",
    "react-redux": "^6.0.0",
    "realm": "^2.22.0",
    "redux": "^4.0.1",
    "redux-thunk": "^2.3.0",
    "rn-fetch-blob": "^0.10.15",
    "tipsi-stripe": "^7.1.0"
  },
  "devDependencies": {
    "babel-jest": "^23.6.0",
    "jest": "^23.6.0",
    "jest-junit": "^6.2.1",
    "metro-react-native-babel-preset": "^0.51.0",
    "react-test-renderer": "^16.6.3"
  },
  "jest": {
    "preset": "react-native",
    "transform": {
      "^.+\\.(js)$": "<rootDir>/node_modules/react-native/jest/preprocessor.js"
    },
    "setupFiles": [
      "./test/env.js"
    ],
    "coverageReporters": [
      "text"
    ],
    "reporters": [
      "default",
      "jest-junit"
    ],
    "collectCoverageFrom": [
      "Src/**/*.{js,jsx}",
      "!/node_modules/"
    ],
    "transformIgnorePatterns": [
      "node_modules/(?!(react-native|react-native-languages)/)"
    ]
  },
  "jest-junit": {
    "output": "output/coverage/junit/junit.xml",
    "usePathForSuiteName": "true"
  }
}


{
“名称”:“应用程序名称”,
“版本”:“1.0.4”,
“私人”:没错,
“rnpm”:{
“资产”:[
“Src/assets/fonts/”
]
},
“脚本”:{
“开始”:“node node_modules/react native/local cli/cli.js start”,
“测试”:“jest--coverage--coverage Directory=output/coverage/jest”
},
“依赖项”:{
“i18n js”:“^3.1.0”,
“反应”:“16.6.3”,
“反应本机”:“0.57.8”,
“react本机快速图像缩放查看器”:“^2.3.0”,
“react native firebase”:“^5.1.1”,
“react native gifted chat”:“^0.7.2”,
“react本机映像裁剪选择器”:“^0.21.3”,
“react本机图像缩放查看器”:“^2.2.25”,
“反应母语”:“^3.0.1”,
“反应原材料下拉列表”:“^0.11.1”,
“反应本机模式”:“^7.0.2”,
“反应本机权限”:“^1.1.1”,
“反应本机进度”:“^3.5.0”,
“反应本机重启”:“0.0.9”,
“react native spinkit”:“^1.1.1”,
“react native swiper”:“^1.5.14”,
“react native view toast”:“0.0.1”,
“反应导航”:“^3.0.8”,
“react redux”:“^6.0.0”,
“领域”:“^2.22.0”,
“redux”:“^4.0.1”,
“redux thunk”:“^2.3.0”,
“rn fetch blob”:“^0.10.15”,
“tipsi条纹”:“^7.1.0”
},
“依赖性”:{
“巴别塔笑话”:“^23.6.0”,
“玩笑”:“^23.6.0”,
“jest junit”:“^6.2.1”,
“metro react native babel预设”:“^0.51.0”,
“反应测试渲染器”:“^16.6.3”
},
“笑话”:{
“预设”:“反应本机”,
“转变”:{
“^.+\.(js)$”:“/node\u modules/react native/jest/preprocessor.js”
},
“设置文件”:[
“/test/env.js”
],
“搬运工”:[
“文本”
],
“记者”:[
“默认”,
“开玩笑的少年”
],
“CollectionCoverage from”:[
“Src/***.{js,jsx}”,
“!/node\u模块/”
],
“transformIgnorePatterns”:[
“节点_模块/(?!(反应本机|反应本机语言)/)”
]
},
“开玩笑的少年”:{
“output”:“output/coverage/junit/junit.xml”,
“usePathForSuiteName”:“true”
}
}
现在,如果我进行npm测试,它会抛出一个错误,正如我在标题中提到的那样。有人告诉我如何绕过我在应用程序中使用的所有npm模块


提前谢谢

我也犯了同样的错误:(