Salut, j'essayais de tester l'application React avec une enzyme, mais cela génère une erreur TypeError: l'adaptateur n'est pas un constructeur, Any Idea
Ceci est mon fichier de test
import ProductRow from '../product_row'; import React from 'react'; // import { mount } from 'enzyme'; import * as enzyme from 'enzyme'; import * as Adapter from 'enzyme-adapter-react-16'; enzyme.configure({ adapter: new Adapter() }); test('TodoComponent renders the text inside it', () => { const wrapper = enzyme.mount( <ProductRow item={{}} quickView={[]} productPage={''} count={0} numberOfColumns={0} title={'title'} taxonomies={{}} excerpt={'excerpt'} /> ); });
TypeError: l'adaptateur n'est pas un constructeur
Je ne pense pas import *
fonctionne comme prévu lors de l'importation d'un module avec une exportation par défaut, cela devrait fonctionner:
import Enzyme from 'enzyme'
import Adapter from 'enzyme-adapter-react-16'
Enzyme.configure({ adapter: new Adapter() })
BTW. vous pouvez mettre ce qui précède dans un fichier et le référencer dans vos paramètres Jest afin de ne pas avoir à l'ajouter à chaque test:
setupFiles: ['<rootDir>/tools/jest/setup-react-adapter.js'],
Vous devez utiliser l'importation comme ceci:
import Adapter from 'enzyme-adapter-react-16';
De cette façon: (importer * comme adaptateur à partir de ...) renvoie un message "TypeError: l'adaptateur n'est pas un constructeur."
Pour TypeScript:
import { configure } from 'enzyme';
import * as ReactSixteenAdapter from 'enzyme-adapter-react-16';
const adapter = ReactSixteenAdapter as any;
configure({ adapter: new adapter.default() });