web-dev-qa-db-fra.com

Quelle est la différence entre Jest et l'enzyme?

Je suis nouveau dans les tests unitaires. Je veux tester le projet React. Comme j'ai commencé avec la documentation React qui fait référence à l'enzyme comme utilitaire de test, ce qui est un peu ambigu pour moi).

Quelle est la différence entre Jest et enzyme?

  • enzyme bibliothèque d'assertions ou exécuteur de tâches?
  • Puis-je utiliser karma avec Jasmine?
  • Quelle est la meilleure façon de tester un react-redux projet?
26
Eslam Tahoon

Jest est un framework qui a un gestionnaire de tâches, une bibliothèque d'assertions et un bon support de simulation qui signifie qu'il pourrait exécuter différents cas de tests unitaires, écrire son résultat dans la console ou les fichiers journaux, pourrait créer des simulations ou vérifier tous les assertions en bref il exécutera le test.

Enzyme d'autre part est une bibliothèque qui encapsule des packages comme React TestUtils, JSDOM et CheerIO pour créer une interface plus simple pour écrire des tests unitaires. React TestUtils a des méthodes pour rendre un composant React dans un document et simuler un événement. JSDOM est une implémentation JavaScript du DOM (modèle d'objet Document). DOM représente la structure arborescente des composants de l'interface utilisateur. CheerIO implémente un sous-ensemble du noyau jQuery et est utilisé pour interroger le DOM.

Ainsi, l'enzyme n'est pas un lanceur de test. Elle n'a pas sa propre bibliothèque d'assertions en tant que telle, elle fournit simplement une collection d'API pour les tests unitaires. C'est pourquoi il pourrait être intégré à jest ou à tout autre exécuteur de tâches.

Oui, vous pouvez utiliser du karma avec du jasmin.

10
Kirti Chaturvedi

Le commentaire d'Aaron répond à votre première question.

Enzyme fournit des fonctions utilitaires de test unitaire pour les composants React, comme autoriser le rendu superficiel. Les documents Enzyme disent que vous pouvez l'utiliser avec n'importe quel exécuteur de test ou bibliothèque d'assertions - voir http: // airbnb.io/enzyme/ .

Oui, vous pouvez utiliser du karma avec du jasmin.

En ce qui concerne la meilleure façon de tester un projet react-redux, c'est une question distincte et je vous suggère de rechercher Stack Overflow. :)

3
Patrick Finnigan