J'ai adoré Jest jusqu'à présent en testant les composants React.
J'ai cependant utilisé/utilisé Mocha/Jasmine pour tester les backends de nœuds, et je voulais juste demander s'il est possible (et recommandé) d'utiliser Jest pour les tests de backend, car je n'ai trouvé aucune indication à ce sujet dans la documentation (React , React-Native, Async, Webpack, c'est-à-dire non Node
)
Je viens d'essayer de l'utiliser et, malheureusement, j'ai rencontré un obstacle instantané. brcypt
déclenche un avertissement [SECURITY] node-uuid: crypto not usable, falling back to insecure Math.random()
et le test échoue en raison d'une erreur d'exécution ( TypeError: Path must be a string. Received undefined
)
Est-il possible d'utiliser Jest pour les tests backend dès maintenant, ou cela ne fait-il pas partie de la portée du projet et quelque chose comme Jasmine convient-il mieux ?
Quel type de test backend essayez-vous de faire ? Jest lui-même utilise Jest pour les tests et de nombreuses bibliothèques utilisent Jest pour les tests. Pouvez-vous fournir un référentiel sur github que je peux utiliser pour npm install
et npm test
qui montre votre problème ?
Deux choses que je recommande : essayez de définir "automock": false
et "testEnvironment": "node"
. Si vos autres tests reposent sur cela, vous pouvez créer une configuration Jest distincte et exécuter jest avec --config=pathToConfig.json
et utiliser modulePathIgnorePatterns
pour ignorer les tests frontend.
Merci pour la réponse rapide @cpojer !
Heureux d'apprendre que Jest peut être utilisé avec Node ! Je pensais que ce serait le cas, car il s'agit essentiellement d'une bibliothèque de test et que l'API devrait simplement fonctionner, mais j'ai ressenti le besoin de la demander d'autant plus qu'il n'y a presque aucune ressource en ligne montrant qu'elle est utilisée avec les backends Node et principalement avec react (ou mon Google-Fu n'était tout simplement pas assez bon).
Je me moquais déjà de mes node_modules
donc ce n'était pas le cas, mais testEnvironment: node
fait l'affaire !
Acclamations!
Oui, l'environnement par défaut ( jsdom
) ne se prête pas toujours bien aux tests de nœuds. Un autre avantage est que le nœud env se chargera 500 ms plus rapidement (effectivement instantanément) car jsdom est un peu lent.
Commentaire le plus utile
Quel type de test backend essayez-vous de faire ? Jest lui-même utilise Jest pour les tests et de nombreuses bibliothèques utilisent Jest pour les tests. Pouvez-vous fournir un référentiel sur github que je peux utiliser pour
npm install
etnpm test
qui montre votre problème ?Deux choses que je recommande : essayez de définir
"automock": false
et"testEnvironment": "node"
. Si vos autres tests reposent sur cela, vous pouvez créer une configuration Jest distincte et exécuter jest avec--config=pathToConfig.json
et utilisermodulePathIgnorePatterns
pour ignorer les tests frontend.