JavaScript : Les tests unitaires et fonctionnels

Connaître les types de vérification

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Grâce aux différents types de test, vous pourrez vérifier de nombreuses propriétés et la présence d'une valeur ou d'une propriété. Ainsi, vous serez en mesure de garantir la structure du code.
05:52

Transcription

Qu'existe-t-il comme types ? On va aller dans la documentation et vous allez voir qu'ici, effectivement, vous allez trouver, maintenant que vous savez écrire un test, les différences entre les différents types d'assertion possibles. On a vu la plus simple except (true) toBe (true) ça c'est très simple, on vérifie que quelque chose est égal à quelque chose. Il faut savoir que maintenant que vous avez compris la structuration, un scénario test et à l'intérieur des cas de test, la documentation va être très simple à lire. On a plein de types possibles, on a les toBe, les not.toBe Ce sera toujours .not quand vous voudrez faire l'inverse d'une règle. On peut vérifier ici les égalités réelles donc pas toBe mais vraiment des call purs. On peut vérifier bien évidemment des structures complètes avec des objets. On peut vérifier des matchs avec des raygates comme on avait fait à l'avance, mais cette fois-ci, on aura moins de choses à écrire. Vous pouvez tout de suite tester un toMatch avec simplement une valeur à l'intérieur. On peut vérifier que c'est défini ou pas défini quand ce sont des propriétés d'objets, par exemple toBeDefined. On peut vérifier, ici, que c'est Defined. Vous voyez qu'ici, on a tout un tas d'assertions possibles Truthy, Falsy, beaucoup de choses. On a même les contenants, un array va contenir une valeur particulière, ou pas, cela peut être aussi intéressant. On peut même faire des vérifications avec less et greater pour vérifier que des valeurs sont plus élevées ou plus petites. On a des vérifications toBeCloseTo avec des précisions sur des mathématiques donc de la comparaisons mathématique. On peut vraiment s'amuser à faire beaucoup de choses. Voyez que là, on a vu les cas de tests les plus simples, et ici vous avez aussi un peu plus bas les choses qui doivent vérifier, si ça doit crasher ou pas, par exemple. On peut aussi ici ajouter des callbacks, on a un foo False ici et puis une callback qui va être appelée après. Donc vraiment pas mal de possibilités pour vérifier des types. On va essayer de développer un premier test pour notre chat. Comment faire ? D'abord, on va dans notre SpecRunner ici, vérifier que tout est ajouté, qu'il n'y a pas de problème. Ensuite, ici, on va commencer à travailler notre suite de tests. On va enlever cette partie-là et on va utiliser notre code. Étant donné que notre code est relié, il n'y a pas de problème, on va pouvoir l'utiliser. On va ici écrire non pas une suite, mais on va plutôt essayer de valider la structure. On va dire que l'objet de ligne est valide, ça va être le scénario, et ici on sait par exemple que notre objet de ligne... On va aller ouvrir notre say.js, on sait que notre objet de ligne va avoir une propriété name, une text et une time, on sait vraiment qu'il y a ça. On va dire que la propriété text est présente. Vous pouvez aussi utiliser comme ça ce petit caractère ` très sympa, ici, pour mettre en exergue des types propriétés. Comment va-t-on faire ? On va d'abord se créer un message, donc var message qui va être égal à say. Say, c'est comme ça que ça s'utilise, julien et puis juste derrière on va mettre un message, hello par exemple, et on va valider que dans message, donc expect message.text, et on sait que c'est toBeDefined : doit être défini. En écrivant ça, vous allez valider une première étape. Maintenant, il va falloir le tester pour voir si tout fonctionne. On va recharger la page et on va se rendre compte qu'on a un problème, on n'a plus le test.runner, on obtient Julien : hello. Pourquoi ? Là, on va déjà pouvoir commencer à améliorer le code c'est-à-dire qu'en écrivant des tests, vous allez améliorer le code. Ce qu'on a fait depuis le début, c'est d'injecter dans le body, donc directement au say, on fait un rendu sur le body donc ça vient écraser tout ce qui existe dans la page. Il va donc falloir qu'on le valide un peu mieux que ça. En fait, on va plutôt se créer une var root qui va être un élément de la page dans lequel on va venir injecter notre information. Cette var root, je vous conseille de faire plutôt une div qui va s'appeler root, par exemple div.root, et puis on va vérifier que cette div existe, donc if root, et à ce moment-là, si elle existe dans la page, on injectera à l'intérieur. Rien que le test, ici, nous permet déjà de valider qu'on a un problème. On a déjà un problème dans le code et ça nous permet de l'améliorer aussi. On améliore le code au fur et à mesure. If root, pour que ça fonctionne dans say.html édition, on va aussi se préparer une div avec une class root, comme ça on sait qu'on injectera à l'intérieur. Pour bien valider que tout fonctionne, étant donné qu'on n'a pas, pour le moment, de test fonctionnel, on va le faire à la main, on va enregistrer et on va voir que ça fonctionne bien. Maintenant si vous rechargez votre suite de test, vous allez voir que votre test passe et du coup, c'est bon, la propriété text est bien présente. Ce qui est intéressant, c'est que vous pouvez voir que tout est ok, qu'il n'y a pas de problème. On pourrait essayer de le faire crasher aussi, on pourrait lui dire que c'est message.message qui doit être défini. Ça, il va le vérifier et il va nous dire que non, message.message n'existe pas. Donc voilà comment on peut écrire des tests avec des types en testant son code. Après, vous pourrez utiliser tous les types existants puisqu'il y en a énormément. L'idée étant de vous montrer comment ça fonctionne, on a écrit un premier test pour la propriété text. On pourrait aussi écrire un test pour la propriété qui est la deuxième propriété de notre objet. Toujours pareil, on va regarder un peu le code, on sait qu'il faut un name, on sait qu'il faut un time. La propriété name est présente donc là c'est pareil, on va faire name et puis on va refaire encore en dessous pour le time, on sait qu'on doit avoir du time. On va valider une structure d'objet et garantir que même si elle est modifiée à un moment ou un autre, personne ne casse ce fonctionnement. On a bien tout le comportement ici et on sait que tout fonctionne parfaitement. Comme ça, on est sûr de garantir que notre objet doit avoir ce format-là et il ne changera pas.

JavaScript : Les tests unitaires et fonctionnels

Réalisez des tests unitaires avec Jasmine et des tests fonctionnels avec CasperJS. Testez le code source et le rendu visuel de votre application, et optimisez vos développements.

1h54 (31 vidéos)
Aucun commentaire n´est disponible actuellement
Logiciel :
Jasmine Jasmine 2.5
CasperJS CasperJS 1.1.4
Spécial abonnés
Date de parution :5 avr. 2017

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !