Фермент TypeError: _reactDom2.default.render не является функцией - PullRequest
0 голосов
/ 23 марта 2019

Я выполнил поиск по всем вопросам, связанным со stackoverflow и github, и не нашел решения для этого. В настоящее время у меня есть проект, который использует react@15.4.1, и я пытаюсь настроить Enzyme.

Всякий раз, когда я пытаюсь Enzyme.mount() компонент, я получаю следующую ошибку:

TypeError: _reactDom2.default.render is not a function

Однако, если я Enzyme.shallow() отрисовываю компонент, он работает.

Вот пример теста, который показывает код, вызывающий ошибку:

TestComponent.test.js

import { configure, mount, shallow } from "enzyme"
import Adapter from "enzyme-adapter-react-15.4"

import React from "react"
import TestComponent from "./TestComponent"

configure({ adapter: new Adapter() })

describe("Example Tests", () => {
  test("mount does not work", () => {

    const shallowRendered = shallow(<TestComponent />) <-- this works
    const mountedComponent = mount(<TestComponent />) <-- this throws

  })
})

TestComponent.js

import React from "react"

export default class TestComponent extends React.Component {
  render() {
    return <p>test</p>
  }
}

package.json

//...
"dependencies": {
   //...
   "react": "15.4.1",
   "react-dom: "15.4.1"
}
"devDependencies": {
   //...
   "babel-jest": "24.1.0",
   "enzyme": "~3.3.0",
   "react-addons-test-utils": "15.4.1",
   "react-test-renderer": "15.4.1",
   "enzyme-adapter-react-15.4": "^1.3.1"
}

jest.config.js

module.exports = {
  verbose: true,
  collectCoverageFrom: ["<rootDir>/src/client/**/*.{js,jsx}"],
  testPathIgnorePatterns: [
    "node_modules",
    "build",
  ],
  transform: {
    "^.+\\.js$": "babel-jest",
  },
  testEnvironment: "jsdom",
  transformIgnorePatterns: ["<rootDir>/node_modules/"],
  moduleNameMapper: {
    "\\.(css|less)$": "<rootDir>/src/client/__mocks__/styleMock.js",
  },
  testURL: "http://localhost",
}

1 Ответ

1 голос
/ 28 июня 2019

Вам нужно импортировать {настроить} из фермента.

import { configure } from 'enzyme'
import Adapter from 'enzyme-adapter-react-16'

configure({ adapter: new Adapter()  })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...