J'utilise le mélange Laravel et j'apparaît que je ne peux pas obtenir de la Jest à trouver réagir si j'interprète ce problème correctement.
Mon test: P>
ReferenceError: React is not defined 18 | const { expanded } = this.state; 19 | > 20 | return ( | ^ 21 | <div> 22 | <nav 23 | className="navbar"
4 Réponses :
EDIT: Le problème semble certainement être avec votre configuration Babel, les navigateurs de réact de préréglage à l'aide de ES6 que la Jest qui cible le nœud ne fait pas, essayez ceci ajoute également ceci à votre webpack.mix.js code> Pour faire connaître la node_modules (suppose que votre composant est situé dans le répertoire A / Modules) P>
.webpackConfig({
resolve: {
modules: [path.resolve(__dirname, 'resources/assets/js/modules'), 'node_modules']
}
})
Je vois des dépendances, je ne sais pas comment cela se rapporte à Babel étant configuré correctement.
J'ai les prérégles de Babel spécifiés dans mon paquet.json. Sous "Babel": {} ..
C'est génial et tandis que cela fonctionne bien pour MIX, qui utilise WebPack pour interpréter ES6 Imports Babel-Jest ne sera pas parce qu'il utilise Nodejs pour exécuter des tests. Cela signifie donc que vos tests devront utiliser une cible différente de votre application. Je ne vois pas votre .babelrc, donc je ne sais pas quels environnements que vous ciblez pour tester, mais je suppose que vous essayez de cibler des navigateurs pour tout.
Les résultats sont les mêmes à travers le conseil, peu importe où je spécifie ma configuration pour Babel.
.babelrc config?
L'utilisation d'un fichier .babelrc n'affecte pas l'utilisation d'un fichier babel.config.js. Si vous demandez de le voir, c'est littéralement l'équivalent de ce que j'avais dans mon paquet.json
Eh bien, car il est probablement un problème de configuration de Babel, votre réticence à fournir uniquement .babelrc ne fait que blesser vos propres chances d'obtenir la question de répondre à la question. Tag moi si vous décidez de le fournir et je vais essayer d'aider. Voici un bon article pour expliquer plus en détail
C'est le tutoriel littéral que j'ai suivi et il a noré les mêmes résultats.
Ajouté mon .babelrc
DROITE Alors, la réponse à cette question est vraiment intéressante.
Donc, comme vous pouvez savoir si vous venez de La solution est simple, changez-la en importer {composant} de 'réact'; code>
Ensuite,
Exporter Classe par défaut MyComponent étend le composant code> Il fonctionnera et rendra dans le navigateur. Toutefois, lorsque vous allez tester avec Jest, vous obtiendrez une réaction indéfinie même si vous l'importaez dans votre fichier de test. p>
Importation React, {Composant} de 'React'; Code> P>
J'ai le même problème, mais cela n'a pas fonctionné pour moi.
Importation React dans Test
import React from 'react';
J'ai résolu de cette façon: importer * comme réagit de "réagir"; code> p>