2016-09-14 8 views
5

मैं प्रतिक्रिया आयात करने के लिए वेबपैक-प्रदान-प्लगइन का उपयोग कर रहा हूं।वेबपैक के साथ जेस्ट प्लगइन प्रदान करते हैं

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 

संभोग, क्योंकि प्रतिक्रिया पूर्व आयात नहीं की जाती है plicitly। क्या स्पष्ट आयात के अलावा इस समस्या का कोई तरीका है और प्लग-इन प्रदान करना है?

+0

इसके माध्यम से कोई रास्ता नहीं मिला। लेकिन हिंडसाइट में मैंने सोचा कि वेबपैक प्रदान करने के लिए बेहतर है प्लगइन कॉन्फ़िगर करें। आयात के रूप में कॉन्फ़िगरेशन/बंडल करने के लिए कोड को बेहतर छोड़ दिया जाना चाहिए। –

+0

यहां एक ही समस्या है, मुझे लगता है कि यह महत्वपूर्ण है हालांकि – VanDavv

+0

सहायता का मज़ाक उड़ाता है? मैंने offerPlugin को हटा दिया है इसलिए इस समस्या से छुटकारा पा लिया –

उत्तर

8

आप इस तरह जेस्ट के लिए एक सेटअप फ़ाइल बना सकते हैं:

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

और यह config हंसी में जोड़ें: "setupFiles": [ "<rootDir>/jest.setup.js" ], जैसा कि आप इस चर webpack प्रदान का उपयोग कर साबित हो रहे हैं http://facebook.github.io/jest/docs/configuration.html#setupfiles-array

+0

बस एक नोट है कि यह 'DefinePlugin' के लिए भी काम करता है। – HussienK

0

इस लाइन को दूर लगाना;

आयात "प्रतिक्रिया" से प्रतिक्रिया;

संबंधित मुद्दे