Jest с веб-пакетом предоставляет плагин

Я использую webpack-provide-plugin для импорта реакции.

new webpack.ProvidePlugin({
        "React": "react",
}),

// текст.jsx

let text = (props) => (
  <div> 
    <p class="text">this.props.text</p>
  </div>
)

export default text 

//текст.test.js

import React from 'react';
import { shallow } from 'enzyme';
import text from 'text';

it('Renders text', () => {
    const wrapper = shallow(<text/>);
    expect(wrapper.hasClass("text")).toEqual(true);
});

Но при запуске тестов реактивных компонентов с шуткой я получаю сообщение об ошибке

ReferenceError: React is not defined

Конечно, потому что реакция не импортируется явно. Есть ли способ решить эту проблему, кроме явного импорта и отказа от Provide-Plugin?


person Umang Gupta    schedule 14.09.2016    source источник
comment
Не нашел пути через это. Но, оглядываясь назад, я подумал, что лучше удалить конфигурацию webpack ProvidePlugin. Поскольку импорт лучше оставить для кода, чем для сборки/связки config.   -  person Umang Gupta    schedule 06.10.2016
comment
Та же проблема здесь, я думаю, что это важно, хотя   -  person VanDavv    schedule 19.10.2016
comment
Издевательство помогает? Я удалил ProvidePlugin, чтобы избавиться от этой проблемы.   -  person Umang Gupta    schedule 21.10.2016


Ответы (2)


Вы можете создать установочный файл для Jest следующим образом:

//jest.setup.js
window.React = require('react');

и добавьте его в конфигурацию Jest: "setupFiles": [ "<rootDir>/jest.setup.js" ], http://facebook.github.io/jest/docs/configuration.html#setupfiles-array

person Oleh Horitsyn    schedule 04.01.2017
comment
Просто обратите внимание, что это работает и для DefinePlugin. - person HussienK; 23.10.2017
comment
это работает, но как? - person ecoe; 09.03.2021

удалите эту строку, поскольку вы проверяете эту переменную с помощью плагина webpack;

импортировать React из «реагировать»;

person Gaurav Gupta    schedule 08.02.2018