2016-09-14 26 views
5

İçeri aktarımı almak için webpack-supply-plugin kullanıyorum.Web paketi ile web paketi eklentisi sağlar

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); 
}); 

Ama jest ile bileşen testleri tepki koşu yaparken, ben hatayı olsun

ReferenceError: React is not defined 

Tabi, reaksiyona girmeyeceğinden plicitly. Bu soruna açık ithalatlar ve tedarik-eklentiden vazgeçmenin bir yolu var mı? Verdiğiniz webpack kullanarak bu değişkeni ispatı olarak http://facebook.github.io/jest/docs/configuration.html#setupfiles-array

+0

İçinde bir yol bulamadık. Ancak arka görüşte webpack offerPlugin yapılandırmasının kaldırılmasının daha iyi olacağını düşündüm. İçe aktarma kodu daha iyi yapmalı ve daha sonra konfigürasyon yapmalı/yapılandırmalıdır. –

+0

Burada da aynı sorun var, bence önemli olan – VanDavv

+0

Bir alay yardımı mı yapıyor? ProvidPlugin'i kaldırdım, bu yüzden bu sorundan kurtuldum –

cevap

8

Böyle Jest için bir kurulum dosyası oluşturabilirsiniz Eklenti;

import "react" den gelen tepki;

+0

Bunun sadece 'DefinePlugin' için çalıştığı bir not. – HussienK

0

bu çizgiyi kaldırmak "setupFiles": [ "<rootDir>/jest.setup.js" ]:

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

ve yapılandırma Jest eklemek:

İlgili konular