10 outils de test JavaScript fiables

Le besoin de tester le code JavaScript est simple. Comment éviter les bogues et s'assurer que les applications fonctionnent correctement dans le navigateur ou sur Node.js? Heureusement, les développeurs disposent d'une pléthore d'options en matière de tests JavaScript.

Les exécuteurs de tests et les frameworks pour les tests unitaires, les tests d'intégration et les tests fonctionnels sont facilement disponibles pour l'écosystème JavaScript, avec une couverture pour Node.js et les navigateurs ainsi que pour les frameworks Angular et React. Voici 10 des nombreuses options remarquables dont disposent les développeurs JavaScript pour les aider à tester leurs applications.

AVA

AVA est un exécuteur de test pour Node.js qui offre une API concise, une sortie d'erreur détaillée et une prise en charge de nouvelles fonctionnalités de langage et d'isolation de processus. AVA est le mieux adapté pour tester les modules Node.js et les applications serveur, mais peut-être pas pour tester les applications d'interface utilisateur. Parmi ses capacités, AVA propose une fonctionnalité permettant de marquer un test comme une tâche «à faire». Chaque fichier de test exécuté est un processus distinct. D'autres avantages cités incluent le minimalisme et la vitesse d'AVA, la syntaxe de test simple et la capacité à exécuter des tests simultanément. AVA prend également en charge les fonctions asynchrones et les observables - un observable étant un type qui peut être utilisé pour modéliser des sources de données poussées telles que des événements DOM.

Installez AVA

Les instructions d'installation d'AVA se trouvent sur la page GitHub du projet.

Concombre.js

L'implémentation JavaScript de l'outil de test Cucumber, Cucumber.js, fonctionne sur les versions maintenues de Node.js et dans les navigateurs Web modernes. Le projet Cucumber cite des avantages, notamment les communications de l'équipe et la possibilité d'exécuter des tests automatisés rédigés dans un langage «simple», ce qui signifie que n'importe qui dans l'équipe peut les lire. Ainsi, la communication, la collaboration et la confiance peuvent être améliorées. Cucumber.js inclut un fichier exécutable pour exécuter vos suites de tests (appelées fonctionnalités), donc ne fonctionne pas lorsqu'il est installé globalement. (Le concombre doit être requis dans les fichiers de support et les modules installés globalement ne peuvent pas être requis.)

Installez Cucumber.js

Les instructions d'installation de Cucumber.js sont disponibles sur GitHub.

Enzyme

Enzyme est un utilitaire de test pour la bibliothèque d'interface utilisateur JavaScript React. Il est destiné à faciliter le test de la sortie des composants React. Les développeurs peuvent manipuler, parcourir et simuler le runtime en fonction de la sortie. L'API Enzyme imite l'API jQuery pour la manipulation et la traversée DOM. Enzyme n'a aucune opinion sur le testeur ou la bibliothèque d'assertions. Si les développeurs souhaitent utiliser Enzyme avec des assertions personnalisées et des fonctions pratiques pour tester les composants React, ils peuvent envisager chai-enzymeavec Mocha / Chai, jasmine-enzymeavec Jasmine ou jest-enzymeavec Jest. Enzyme peut également être utilisé pour tester les composants React Native.

Installez Enzyme

Les instructions d'installation d'Enzyme sont disponibles sur GitHub. 

Karma

Karma est un exécuteur de test pour JavaScript qui permet l'exécution de code dans plusieurs navigateurs. Tous les principaux navigateurs, y compris les navigateurs mobiles, sont pris en charge. Les développeurs derrière le projet disent que Karma offre un environnement dans lequel les développeurs n'ont pas à configurer de nombreuses configurations, mais peuvent écrire du code et obtenir des commentaires instantanés des tests. Karma est conçu pour les tests (unitaires) de bas niveau. Pas un framework de test ou une bibliothèque d'assertions, Karma lance un serveur HTTP et génère un fichier d'exécution de test à partir du framework de test préféré du développeur. Des plug-ins sont proposés pour des frameworks tels que Jasmine, Mocha et QUnit.

Installez Karma

Les instructions d'installation de Karma sont disponibles sur GitHub.

Jasmin

Jasmine est présenté comme un framework «axé sur le comportement» pour tester JavaScript. Il n'a aucune dépendance vis-à-vis d'autres frameworks JavaScript et n'a pas besoin d'un DOM. Ses partisans citent sa syntaxe comme permettant une écriture facile des tests. Géré par Pivotal Labs, Jasmine est adapté pour tester des sites Web, des projets Node.js et tout autre élément sur lequel JavaScript peut s'exécuter. Jasmine est destiné à faciliter les tests à une variété de cas d'utilisation et de navigateurs différents et est indépendant du framework JavaScript, permettant aux développeurs de tester le code de React ou Angular ou de toute autre bibliothèque JavaScript. Jasmine s'efforce de minimiser les dépendances tout en restant petite et maintenable.

Installez Jasmine

Les instructions pour installer Jasmine et démarrer avec Jasmine sont disponibles sur GitHub.

Plaisanter

Jest est présenté comme une solution de test JavaScript complète, prête à l'emploi, sans configuration, pour la plupart des projets JavaScript. Les tests ont un état global unique et peuvent être exécutés en parallèle. Les tests ayant échoué précédemment sont exécutés en premier, les exécutions étant réorganisées en fonction de la longueur des fichiers de test. Fonctionne simplement avec les technologies JavaScript populaires, notamment Angular, Babel, Node.js, React et Vue. Des tests peuvent être exécutés pour suivre les objets volumineux, avec des instantanés vivant parallèlement aux tests ou intégrés en ligne. Dans les fichiers de test, Jest place les méthodes et les objets dans l'environnement global, sans avoir besoin de les importer.

Installez Jest

Les instructions d'installation de Jest sont disponibles sur GitHub. 

Luna

Luna est un cadre de test unitaire avisé pour JavaScript qui ne nécessite aucune configuration. Les développeurs peuvent exécuter leurs premiers tests unitaires en quelques minutes, indique la documentation du produit. Les rapports de couverture de code sont générés sans installer d'autres modules. Les tests doivent être écrits en tant que modules ES6, les tests étant exécutés par défaut dans le navigateur. La concurrence est prise en charge, avec des groupes de test exécutés en parallèle. Luna a été partiellement inspiré par les tests intégrés disponibles pour le langage Go de Google. Luna ne prend pas en charge le transpiling et ne fonctionnera donc pas avec CoffeeScript ou TypeScript. Il manque également de support pour les navigateurs plus anciens. 

Installez Luna

Les instructions d'installation de Luna sont disponibles sur GitHub. 

Moka

Un framework de test riche en fonctionnalités qui s'exécute sur Node.js et dans le navigateur, Mocha promet de rendre le test du code asynchrone «simple et amusant». Les tests sont exécutés en série, ce qui, selon les partisans, permet des rapports précis et flexibles tout en mappant les exceptions non détectées à des cas de test précis. Pour des tests continus, les développeurs peuvent utiliser l'outil Wallaby.js pour activer la couverture de code en temps réel pour Mocha avec n'importe quelle bibliothèque d'assertions. Mocha s'intègre également aux frameworks d'application, comme via Konacha, qui permet aux développeurs d'utiliser Mocha pour tester JavaScript dans les applications Ruby on Rails. Un certain nombre de plug-ins d'édition sont également disponibles, tels que l'extension de la barre latérale Mocha pour Visual Studio Code. 

Installez Mocha

Les instructions d'installation de Mocha et la documentation des nombreuses fonctionnalités de Mocha sont disponibles sur le site Web du projet. 

Rapporteur

Protractor est un cadre de test de bout en bout pour Angular et son prédécesseur, AngularJS. Les tests sont exécutés sur des applications dans un navigateur, Proctractor interagissant avec une application comme le ferait un utilisateur. Les stratégies de localisation angulaires spécifiques sont prises en charge, pour tester les éléments angulaires sans aucune configuration. Une fonction d'attente automatique permet à Protractor d'exécuter l'étape suivante d'un test au moment où une page Web termine les tests en attente. Protractor a été construit sur WebdriverJS, une implémentation JavaScript de l'outil d'automatisation du navigateur Selenium utilisé pour les tests.

Installer le rapporteur

Les instructions d'installation de Protractor se trouvent sur le site Web de Protractor. 

QUnit

QUnit est un framework de test unitaire JavaScript utilisé par les projets JQuery, jQuery UI et jQuery Mobile. En fait, QUnit a été développé à l'origine dans le cadre de jQuery par l'inventeur de jQuery John Resig. QUnit est présenté comme rapide et facile à utiliser, avec une API qui est avisée mais légère et extensible, et il peut être utilisé pour tester n'importe quel code JavaScript générique. Lorsqu'un test ou une assertion échoue, QUnit promet de fournir des commentaires le plus rapidement possible, avec suffisamment de détails pour résoudre le problème. Les méthodes d'assertion dans QUnit suivent la spécification de test unitaire CommonJS. QUnit prend en charge les navigateurs soutenus par jQuery 3.x, y compris les variantes de Chrome, Edge, Firefox, Internet Explorer et Safari.

Installer QUnit

Vous pouvez télécharger et installer QUnit à partir du site Web QUnit ou à partir de jQuery.cdn.