2016-09-14 2 views
5

Я использую webpack-обеспечить-плагин для импорта реакции.Jest с webpack обеспечивают плагин

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

// text.jsx

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

export default text 

//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 

Конечно, поскольку реакция не импортируется ex plicitly. Есть ли способ этой проблемы, кроме явного импорта и отказа от предоставления плагина?

+0

Не нашел способ пройти через него. Но, оглядываясь назад, я подумал, что лучше удалить webpack обеспечить конфигурациюPlugin. Поскольку импорт должен быть лучше оставлен для кода, то для сборки/связывания конфигурации. –

+0

Тот же вопрос здесь, я думаю, это важно, хотя – VanDavv

+0

Помогает ли насмехаться? Я удалил securityPlugin, поэтому избавился от этой проблемы. –

ответ

8

Вы можете создать файл для Шутки установки, как это:

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

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

+0

Просто обратите внимание, что это работает и для 'DefinePlugin'. – HussienK

0

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

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

Смежные вопросы