我正在尝试使用ReactTestutils设置React Native项目的单位测试但是,我在运行NPM测试时会遇到此错误:
Cannot find module 'react/lib/React' from 'ReactTestUtils.js'
我感觉我的依赖项无法正常工作,但我找不到原因。我已经尝试降级React版本,但这无法解决我的问题并调整React-Dom版本,但我似乎找不到金色组合。
有人知道这是否是已知问题?我在这里找不到有关此文件的任何文档,也无法在React文档中找到。
这是我的软件包。JSON配置:
"scripts": {
"start": "react-native-scripts start",
"eject": "react-native-scripts eject",
"android": "react-native-scripts android",
"ios": "react-native-scripts ios",
"test": "jest --watch"
},
"dependencies": {
"react-native-scripts": "0.0.40",
"expo": "18.0.3",
"react": "16.0.0-alpha.12",
"react-native": "0.45.1",
"react-navigation": "1.0.0-beta.11"
},
"devDependencies": {
"enzyme": "^2.9.1",
"jest": "19.0.2",
"jest-expo": "~18.0.0",
"react-addons-test-utils": "^15.6.0",
"react-dom": "^15.6.1",
"react-test-renderer": "^16.0.0-alpha.12"
},
"jest": {
"preset": "react-native",
"collectCoverage": true,
"coverageDirectory": "__coverage__",
"testRegex": "./__tests__/[^setup].*.js$",
"transformIgnorePatterns": [
"node_modules/(?!react-native|native-base|react-navigation|react-native-fabric)"
],
"setupFiles": [
"./__tests__/setup.js"
]
}
您会使React(Web)和React-Native混淆。
ReactTestutils是用于反应的,并且不适用于反应。因此,您需要在其他地方寻找单位测试反应。另外,您应该从项目中删除作为依赖性的反应。
我在这里看到的问题是您同时依靠React 16和15。React/lib/*中的内部已在React 16中完全改变,因此不可能组合。您应该使用一切反应( - *)16或15,而不是两者的混合物。
最新的开玩笑和酶(v3)现在具有刚刚出现的React 16的完整兼容性!