用酶适配器反应-15.4反应同伴依赖问题

时间:2018-03-12 07:00:06

标签: reactjs unit-testing jestjs enzyme

我正面临enzyme-adapter-react-15.4的同伴依赖问题。我使用JEST和ENZYME对我的React应用程序进行单元测试。我使用下面的配置:

"react": "^15.1.0",
"enzyme": "^3.2.0",
"react-addons-test-utils": "^15.3.1",
"enzyme-adapter-react-15.4": "^1.0.5",
"react-dom": "^15.1.0",

即使我有所有模块,我也会遇到错误:

! peer dep missing: react@15.0.0-0 - 15.4.x, required by enzyme-adapter-react-15.4@1.0.5 npm ERR! peer dep missing: react-addons-test-utils@15.0.0-0 - 15.4.x, required by enzyme-adapter-react-15.4@1.0.5 npm ERR! peer dep missing: react-dom@15.0.0-0 - 15.4.x, required by enzyme-adapter-react-15.4@1.0.5

我在node_modules / react / package.json中看到安装的版本是15.6.2而我特意安装了15.1作为prod依赖。

我的配置文件:

// enzyme-setup.js
import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-15.4';

configure({ adapter: new Adapter() });

JEST:

{
    "testEnvironment": "jsdom",
    "setupTestFrameworkScriptFile": "./enzyme.setup.js",
    "testResultsProcessor": "jest-teamcity-reporter",
    "coverageReporters": [
        "teamcity", "lcov"
   ],
    "rootDir": "",
    "roots": [
      "__tests__/unit/"
    ],
    "moduleNameMapper": {
        "@PathToMappers(.*)$": "<rootDir>/src/data/mappers/$1",
        "@PathToModels(.*)$": "<rootDir>/src/data/models/$1",
        "@PathToMocks(.*)$": "<rootDir>/__tests__/mocks/data/$1",
        "@PathToXHRClient(.*)$": "<rootDir>/src/service/xhr-client/$1",
        "@PathToComponents(.*)$": "<rootDir>/src/component/$1"
    }
}

1 个答案:

答案 0 :(得分:0)

您需要一个酶的设置配置文件,如下所示:

//setup.js
import Enzyme from 'enzyme';
import Adapter from 'enzyme-adapter-react-15';

Enzyme.configure({ adapter: new Adapter() });

然后你需要在package.json

中的jest对象中要求这个文件
  "jest": {
    "setupTestFrameworkScriptFile": "<rootDir>" // path from your test folder to your setup.js file
  },