为什么我收到以下错误:酶内部错误:配置的酶适配器未从 EnzymeAdapter 基类继承

emi*_*ero 4 testing unit-testing reactjs jestjs enzyme

我已经设置了笑话和酶,但无法运行。它抱怨 EnzymeAdapter 基类。

我努力了

configure({})import { configure } from 'enzyme'

Enzyme.configure({})import Enzyme from 'enzyme'

new Adapter()import Adapter from 'enzyme-adapter-react-16';

new EnzymeAdapter()import EnzymeAdapter from 'enzyme-adapter-react-16';

我的 setupTests.js:

import Enzyme, { configure } from 'enzyme';
import EnzymeAdapter from 'enzyme-adapter-react-16';

Enzyme.configure({ adapter: new EnzymeAdapter() });
Run Code Online (Sandbox Code Playgroud)

我为每个测试类得到的错误如下:

Enzyme Internal Error: configured enzyme adapter did not inherit from the EnzymeAdapter base class

      2 | import EnzymeAdapter from 'enzyme-adapter-react-16';
      3 | 
    > 4 | Enzyme.configure({ adapter: new EnzymeAdapter() });
        |        ^

      at validateAdapter (node_modules/enzyme/src/validateAdapter.js:43:11)
      at Object.merge [as configure] (node_modules/enzyme/src/configuration.js:11:5)
      at Object.configure (src/setupTests.js:4:8)
          at Array.forEach (<anonymous>)
Run Code Online (Sandbox Code Playgroud)

由于我为每个测试套件都获得了 setupTests.js 的工作原理。

如果我在 test.js 本身中进行配置,则会出现相同的错误

我已经搜索了几个小时但没有运气。有人以前遇到过这个问题或者有解决方案吗?

提前致谢!

emi*_*ero 5

发现错误了!

玩笑有问题。我必须删除node_modulespackage-lock.json/ ,并从 中的 devDependencies 中yarn.lock删除。为什么?因为react-scripts安装的jest版本与.jestpackage.jsonpackage.json

然后我yarn在终端中再次安装了所有依赖项(npm在依赖项和版本控制方面可能会出现错误)并yarn test在项目文件夹中进行了操作。

编辑 #1 感谢 Mitch Lillie 帮助我找到解决方案