Le framework de test Jest de Facebook est facile à commencer avec, mais la documentation ignore un aspect ennuyeux : les instructions de test seront mises en évidence comme des erreurs par tout éditeur qui essaie d'avertir des symboles non définis , car test
, expect
et toutes les méthodes de correspondance ne sont pas définies.
De même, la tentative d'exécution directe d'un fichier de test avec node
échouera avec ReferenceError: test is not defined
.
Quelles instructions require
/import
doivent être ajoutées pour que ces erreurs disparaissent?
Si vous souhaitez les exécuter directement via le nœud, essayez de exiger Donnez également jest
et/ou jest-runtime
.@types/jest
un essai aussi.
Vérifiez Edit 2 pour de nouvelles informations à ce sujet
Modifier
@types/jest
(jest-DefinitelyTyped
) est absolument nécessaire (ou juste une solution). Si vous l'installez (par exemple, la dépendance des développeurs), les erreurs IDE devraient disparaître. Je viens de l'essayer sur Webstorm, et ça marche.
Modifier 2
Les nouveaux Jest @ 20 Matchers (par exemple, .resolves
et .rejects
) ne sont toujours pas définis dans @types/jest
. Vous pouvez suivre son statut sur les liens ci-dessous: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/16645https://github.com/DefinitelyTyped/DefinitelyTyped/ problèmes/168
Il devrait cependant être disponible bientôt!
De plus, il ne semble pas possible de l'exécuter directement via le nœud. Hier soir, j'ai essayé un tas de choses différentes, mais utiliser la plaisanterie est la voie à suivre - il utilise vraiment le nœud sous le capot , donc je pensais que ce serait être possible aussi. @ thymikee sur votre problème ouvert sur GitHub a clairement indiqué que ce n'était pas le cas.
Modifier 3
La nouvelle version ( 20.0.1 ) inclut les dernières définitions Jest.
ce n'est pas dans l'étendue de ce problème spécifique, mais ça aide aussi
Utilisez-vous quelque chose comme ESLint ? Si oui, vous aurez besoin de eslint-plugin-jest
En suivant les étapes décrites dans cette page: https://www.npmjs.com/package/eslint-plugin-jest , vous devrez essentiellement l'ajouter en tant que plugin ESLint et définir des globaux de plaisanterie dans le Configuration ESLint:
{
"env": {
"jest/globals": true
}
}
Si vous prévoyez de prendre en charge les tests ES6 , vous aurez également besoin de Babel
et babel-jest
plugin avec la configuration jest suivante:
"transform": {
"^.+\\.js$": "babel-jest"
}
Enfin, pour les tests TypeScript , vous auriez besoin du @types/jest
et ts-jest
packages aussi
J'utilise VSCode et ESLint, vous devez installer eslint-plugin-jest
Ajoutez des informations sur votre .eslintrc.js
{
"plugins": ["jest"]
},
"env": {
"jest/globals": true
}
L'ajout de la configuration .eslintrc suivante suffit
{"env":
{
"jest": true
}
}