Premiers pas avec Jasmin

Table des matières
Aujourd'hui, c'est le bon moment pour être développeur dans JavaScriptOn peut dire que c'est même passionnant car les technologies qui l'entourent ont un peu mûri, les navigateurs Web sont plus standardisés et chaque jour de nouvelles choses apparaissent avec lesquelles jouer et expérimenter.
JavaScript est un langage établi et le web est la plate-forme principale aujourd'hui, où nous avons vu l'émergence d'applications monopages, la prolifération de frameworks MVC tels que AngularJS ou alors Backbone.js, en utilisant JavaScript côté serveur avec Node.js et même des applications mobiles créées uniquement à l'aide HTML, CSS Oui JavaScript avec des technologies comme PhoneGap.
Depuis ses humbles débuts, JavaScript a été chargé de servir de langage pour manipuler les données et les valider dans les formulaires en HTML et à l'heure actuelle, il est utilisé pour créer les applications puissantes que nous pouvons voir sur le Web. En voyant cela, on peut dire que JavaScript Il a parcouru un long chemin, ainsi que les outils qui sont apparus pour nous assurer d'avoir la même qualité que si nous étions dans d'autres langues.
L'un de ces outils est Jasmin, qui n'est rien de plus qu'un framework de développement orienté comportement et qui nous permet de créer des tests unitaires automatisés pour le langage de programmation JavaScript. Avant d'entrer pleinement dans cet outil, voyons le contexte qui a conduit à son développement ainsi que les concepts clés pour comprendre son fonctionnement JavaScript.
Aujourd'hui, personne ne doute du pouvoir de JavaScriptCependant, il existe des complications lorsque l'on travaille côté client et l'une des raisons évidentes est que nous ne pouvons pas contrôler son environnement d'exécution. Sur le serveur nous n'avons pas ce problème puisque nous pouvons exécuter une version spécifique de Node.js mais dans le cas du navigateur Web, nous ne pouvons pas dire à l'utilisateur d'utiliser une version spécifique de Chrome ou alors Firefox.
Le langage JavaScript est défini dans le cahier des charges ECMAScript Ainsi, chaque navigateur peut avoir sa propre implémentation de l'environnement pour l'exécuter, ce qui entraîne de petites différences ou des bogues entre eux. Chaque objet de JavaScript il est mutable, nous n'avons donc aucun contrôle pour empêcher un module d'écraser des morceaux d'autres, pour illustrer cela, regardons un petit segment de code où nous pouvons voir à quel point il est facile d'écraser la fonction globale console.log:
 console.log ('test'); console.log = 'break'; console.log ('test');
Voyons la réponse par console, où nous pouvons clairement voir l'erreur puisque nous avons écrasé la fonction :

Cette façon d'être du langage était une décision qui a été prise dans sa conception, car elle permettait aux développeurs d'y ajouter des fonctionnalités manquantes, mais compte tenu de cette polyvalence, il est relativement plus facile de faire des erreurs, même une version plus récente du langage a introduit le une fonction Objet.sceau ce qui empêchait cela mais son support ne s'étendait qu'à quelques navigateurs.
Un autre problème que nous présentons avec JavaScript est la gestion des types, dans d'autres langages une expression comme '1' + 1 générera probablement une erreur, mais dans JavaScript cela donnerait 11. Cela peut conduire à quelques problèmes difficiles à trouver, par exemple, supposons que nous ayons ce qui suit :
 var a = 1, b = '5', c = 4, d = 2; var résultat = a + b + c * d; console.log (résultat);
Voyons la réponse via la console lorsque nous exécutons notre code dans le navigateur :

Comme nous pouvons le voir, le résultat était une chaîne, donc si nous attendions un nombre dans une fonction ou une routine spéciale, cela peut causer un problème et trouver cette erreur peut signifier perdre quelques heures de notre précieux temps de développement.
Il est important de mentionner que les points que nous venons d'évoquer ne sont pas une raison pour ne pas utiliser JavaScriptC'est simplement pour voir où il a quelques faiblesses mais cela ne veut pas dire que c'est un mauvais langage, on peut même assurer que les possibilités qu'il nous présente sont infinies en terme de développement d'applications et ce qui est mieux, nous avons encore des outils qui nous, ils vous aideront avec les meilleures pratiques de la même chose.
Comme nous l'avons mentionné, Jasmin C'est un petit framework qui nous aide avec nos tests unitaires dans nos développements et qui utilise la philosophie du développement orienté comportement que nous expliquerons plus tard, mais avant de continuer voyons un concept important et c'est qu'il s'agit de tests unitaires.
Tests unitairesLe tests unitaires Ce sont des morceaux de code qui testent les fonctionnalités des unités dans le code de notre application. Au début de ce chemin, le développeur s'est retrouvé avec une philosophie traditionnelle axée sur le développement orienté test plutôt que comportemental.
C'est pourquoi les créateurs de Jasmin ils restructurent cette manière traditionnelle de tester, dans laquelle le développeur n'avait pas une idée claire de l'endroit où commencer dans le processus de test, ne sachant pas quoi tester et quelle pourrait être la taille d'un module de test ou même comment ils appelleraient l'un de ces tests . Par exemple, si nous utilisons la philosophie de Jasmin Pour effectuer les tests, supposons que nous ayons un lecteur de musique qui aura les critères d'acceptation suivants : Étant donné le lecteur, lorsqu'une chanson est en pause alors le lecteur doit indiquer que la chanson a été mise en pause.
On peut donc prendre le critère et le diviser comme suit :
  • Donné (Un contexte initial)
  • Quand (L'événement se produit)
  • Puis (Une action est entreprise)
Jasmin nous permet de traduire ce qui précède en un code qui sera écrit de manière à refléter sans problème les valeurs de notre application, qui peut ressembler à ceci :
 décrire ("Player", fonction () {describe ("Lorsque la chanson est en pause", fonction () {it ("Il doit indiquer que la chanson est en pause", fonction () {});});});
Comme nous pouvons le voir, nos critères ont été transférés à Jasmin sans trop de peine, où l'on peut dire que chaque critère est traduit en un test unitaire.
On pourrait déjà voir comment Jasmin il gère les critères et les traduit dans sa syntaxe en créant les tests unitaires pour lui, mais pour y arriver, voyons d'abord comment obtenir le framework en premier. Pour cela, on va sur la page du projet et on le télécharge :

AGRANDIR

Lors de la décompression, nous devons aller dans le dossier dist, on y trouvera toutes les distributions de Jasmin à ce jour, par où commencer à l'utiliser, nous devons sélectionner la distribution que nous voulons, de préférence la plus récente et la décompresser dans le dossier de notre projet, entrer dans le dossier et exécuter le fichier SpecRunner.html:

Jasmin Il inclut par défaut quelques exemples de certains tests unitaires, où le fichier SpecRunner.html est en charge de lier le code Jasmine qui inclut les fichiers sources et les fichiers à tester, voyons son contenu :
 Jasmine Spec Runner v2.2.0 
Comme nous pouvons le voir, il est assez simple et nous permet de définir une structure de base pour nos tests, nous donnant une aide pour savoir par où commencer dans ce monde de tests unitaires. Il va sans dire que c'est une bonne idée de jeter un oeil au code de notre distribution de Jasmin afin de nous familiariser avec son fonctionnement.
Il est important de mentionner que Jasmin non seulement limité au code écrit avec du JavaScript pur, nous pouvons tester ces applications construites avec Backbone.js ou alors AngularJS, même sa polyvalence va beaucoup plus loin et nous permet d'effectuer des tests côté serveur dans le cas où nous utilisons Node.js.
RecommandationJasmin C'est un framework qui nous aide beaucoup en termes de tests unitaires, cependant les concepts utilisés ne sont pas si simples, il est soutenu par certaines pratiques avancées de JavaScript comme générer le HTML à l'aide de la fonction créerDom () d'y insérer les éléments, de mentionner certaines de ces caractéristiques, nous vous recommandons donc de parcourir la documentation de JavaScript pour être beaucoup plus préparé pour les futurs tutoriels.
Avec cela, nous avons terminé ce tutoriel, où nous pourrions faire nos premiers pas avec Jasmin, en parcourant un peu la motivation de créer des outils pour tester sur JavaScript et comment le développement axé sur le comportement nous aide à créer de meilleurs tests, en voyant également comment Jasmin est un framework de test assez flexible, nous permettant d'utiliser la même instance pour tester toutes sortes de code dans JavaScript dans nos candidatures.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave