Итак, у меня есть React Class, назовем его A. Я провожу на нем шутливый тест, но продолжаю получать
Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object.
в React Class I 'я делаю: export class A extends Component ..
В файле теста jest я делаю: import { A } from './A.js'
при запуске: const wrapper = mount(<A />)
Я получаю ошибку выше.Я бегу в среде jsdom для шутки.Я в растерянности, почему это не сработает.Я читал, что некоторые люди экспортируют по умолчанию, но я не понимаю, почему не следует выполнять правильный импорт имен.У кого-нибудь есть идеи, в чем может быть проблема?
реальный код: jest файл:
import Adapter from 'enzyme-adapter-react-16';
import Enzyme, { shallow, mount } from 'enzyme';
import React from 'react';
import { A } from '../A';
Enzyme.configure({ adapter: new Adapter() });
/**
* Test Suite
*/
describe('A test', () => {
it('calls componentDidMount', () => {
const wrapper = mount(<A />);
})
})
реагирует класс:
import React, { Component } from 'react';
import PropTypes from 'prop-types';
export class A extends Component {
...
}
jest config:
module.exports = {
clearMocks: true,
// The directory where Jest should output its coverage files
coverageDirectory: 'coverage',
// The test environment that will be used for testing
testEnvironment: 'jsdom',
testURL: 'http://localhost/',
// Directory to search for tests
roots: ['src/'],
// The glob patterns Jest uses to detect test files
testMatch: [
'**/__tests__/**/*.[jt]s?(x)',
'**/?(*.)+(spec|test).[tj]s?(x)'
],
// An array of regexp pattern strings that are matched against all test paths, matched tests are skipped
testPathIgnorePatterns: [
'/node_modules/'
],
snapshotSerializers: [
'enzyme-to-json/serializer'
]
};