无法从'ReactDebugTool.js'中找到模块'react/lib/ReactComponentTreeHook'

jma*_*svt 19 javascript node.js reactjs jestjs

我正在尝试让Jest对我的React应用程序进行快照测试.我的package.json中的版本:

  "react": "15.6.1",
  "react-dom": "15.6.1",
  "react-test-renderer": "15.6.1",
Run Code Online (Sandbox Code Playgroud)

我无法通过这个错误:

? Test suite failed to run


Cannot find module 'react/lib/ReactComponentTreeHook' from 'ReactDebugTool.js'

  at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:179:17)
  at Object.<anonymous> (node_modules/react-test-renderer/lib/ReactDebugTool.js:16:30)
Run Code Online (Sandbox Code Playgroud)

我已经尝试删除并重新安装我的node_modules目录,我已经验证我的组件的路径是正确的但仍然得到同样的错误.

我的测试看起来像这样:

import React from 'react';
import renderer from 'react-test-renderer';
import { Section } from '../../app/views/containers/section';

it('renders correctly', () => {
  const section = renderer.create(
    <Section key="1" section="finance"/>
  ).toJSON();
  expect(section).toMatchSnapshot();
});
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

dot*_*mXY 33

上周遇到类似的问题,我们有一个最近升级到的React-Native项目:

"react-native": "0.45.1"
"react": "16.0.0-alpha.12"
"jest": "20.0.4"
"react-test-renderer": "15.5.4"
Run Code Online (Sandbox Code Playgroud)

然后我们尝试运行我们的Jest测试,我们看到了与上面提到的相同的问题.然后我们意识到反应测试渲染器有一个最前沿的版本,我们尝试了一个:

"react-test-renderer": "^16.0.0-alpha.12",

现在问题不再存在了.


wmc*_*ain 7

在0.47.0

仍然有错误,接受的答案必须做到以下几点:

"react-dom": "^16.0.0-beta.5", "react-test-renderer": "16.0.0-alpha.12",

酶将适用于上述变化,但任何类型的模拟都不会,禁用水龙头直到它们支持.


TGa*_*ett 5

在升级到 React 16.0.0 时,我确实注意到您确实需要将 react-dom 升级到 16.0.0 并且它完美无缺!