2017-07-11 1 views
0

J'utilise Jest pour tester, tomber amoureux de snapshot.jest instantané: ReferenceError: React n'est pas défini

Je ne suis pas importais React dans mes composants parce que je fournis par webpack quand je Regroupez le code, mais quand je lance le webpack de test ne vois quelqu'un, mais quand je reçois un:

l'erreur:

ReferenceError: React is not defined 

    at Object.<anonymous> (src/components/breadcrumb/Breadcrumb.jsx:22:35) 
    at Object.<anonymous> (test/components/components.test.js:3:19) 
    at process._tickCallback (internal/process/next_tick.js:109:7) 

le webpack:

new webpack.ProvidePlugin({ 
    React: 'react' 
}) 

test:

import React from 'react'; 
import Breadcrumb from '../../src/components/breadcrumb/Breadcrumb'; 
import renderer from 'react-test-renderer'; 

describe.only('Components ',() => { 
    test('Breadcrumb.jsx',() => { 
     const tree = renderer.create(
      <Breadcrumb path={['uno', 'due']} /> 
     ).toJSON(); 

     expect(tree).toMatchSnapshot(); 
    }); 
}); 

le composant:

import PropTypes from 'prop-types'; 

import I18n from '../../decorators/I18n'; 
@I18n 
class Breadcrumb extends React.Component { 

    static propTypes = { 
     path: PropTypes.array.isRequired 
    } 

    getBreadcrumb =() => { 
     return this.props.path.map((el, key) => { 
      return (
       <span key={key}>{el}</span> 
      ); 
     }); 
    } 

    render() { 
     return <div>{this.getBreadcrumb()}</div>; 
    } 
} 

export default Breadcrumb; 

Est-ce que vous me aider s'il vous plaît une sorte d'exemple? J'ai vu qu'il y avait quelque chose autour de ces types de problèmes, mais finalement je ne pouvais pas trouver (ou non) les solutions.

+0

Bien lorsque vous fournissez 'React' de cette façon, le code n'est valide que lors de l'exécution de votre script webpack. Y a-t-il une bonne raison de faire cela et de ne pas avoir besoin de réagir régulièrement? –

Répondre

1

Essayez d'importer Réagissez dans le fichier Fil de discussion.