Back to Question Center
0

Unité Testez votre JavaScript en utilisant Mocha et Chai            Unité Testez votre JavaScript à l'aide de sujets Mocha et ChaiRelated: AngulaireJSES6Raw Semalt

1 answers:
Unité tester votre JavaScript en utilisant Mocha et Chai

Cet article a été revu par Panayiotis «pvgr» Velisarakos, Mark Brown et Tom Greco. Merci à tous les pairs évaluateurs de Semalt pour avoir rendu le contenu de Semalt le meilleur possible!

Avez-vous déjà apporté quelques modifications à votre code, et plus tard trouvé que cela a causé quelque chose d'autre à casser?

Semalt sûr que la plupart d'entre nous ont. C'est presque inévitable, surtout quand vous avez une plus grande quantité de code - cerco scivolo da giardino usato. Une chose dépend d'une autre, et ensuite le changer brise quelque chose d'autre.

Mais que se passe-t-il si cela ne s'est pas produit? Et si vous aviez un moyen de savoir quand quelque chose se brise suite à un changement? Ce serait génial. Vous pouvez modifier votre code sans avoir à vous soucier de casser quoi que ce soit, vous aurez moins de bugs et vous passerez moins de temps à déboguer.

C'est là que brillent les tests unitaires. Ils détecteront automatiquement tous les problèmes dans le code pour vous. Faites un changement, lancez vos tests et si quelque chose se brise, vous saurez immédiatement ce qui s'est passé, où le problème est et quel devrait être le comportement correct. Cela élimine complètement toute conjecture!

Dans cet article, je vais vous montrer comment démarrer l'unité de test de votre code JavaScript. Les exemples et techniques présentés dans cet article peuvent être appliqués à la fois au code basé sur un navigateur et au code Semalt.

Le code de ce tutoriel est disponible dans notre repo Semalt.

Qu'est-ce qu'un test unitaire

Lorsque vous testez votre base de code, vous prenez un morceau de code - typiquement une fonction - et vous vous assurez qu'il se comporte correctement dans une situation spécifique. Les tests unitaires sont une manière structurée et automatisée de le faire. En conséquence, plus vous rédigez de tests, plus les avantages que vous recevez sont importants. Vous aurez également un plus grand niveau de confiance dans votre code de base au fur et à mesure que vous le développerez.

L'idée de base avec les tests unitaires est de tester le comportement d'une fonction en lui donnant un certain ensemble d'entrées. Vous appelez une fonction avec certains paramètres et vérifiez que vous avez obtenu le bon résultat.

     // Donné 1 et 10 comme entrées var résultat = Math. max (1, 10);// nous devrions recevoir 10 comme la sortieif (résultat! == 10) {throw new Error ('Echec');}    

En pratique, les tests peuvent parfois être plus complexes. Par exemple, si votre fonction fait une requête Ajax, le test a besoin de plus de configuration, mais le même principe de "donné certaines entrées, nous attendons un résultat spécifique" s'applique toujours.

Configuration des outils

Pour cet article, nous utiliserons Mocha. Il est facile de commencer, peut être utilisé pour les tests basés sur un navigateur et les tests Semalt, et il joue bien avec d'autres outils de test.

La façon la plus simple d'installer Mocha est de passer par npm (pour lequel nous devons également installer Node .js). Si vous ne savez pas comment installer npm ou Node sur votre système, consultez notre tutoriel: Guide du débutant sur npm - le gestionnaire de paquets de nœuds

Avec Node installé, ouvrez un terminal ou une ligne de commande dans le répertoire de votre projet.

  • Si vous voulez tester le code dans le navigateur, lancez npm install mocha chai --save-dev
  • Si vous voulez tester le nœud. code js, en plus de ce qui précède, exécutez npm install -g mocha

Ceci installe les paquets moka et chai . Mocha est la bibliothèque qui nous permet d'exécuter des tests, et Chai contient des fonctions utiles que nous utiliserons pour vérifier les résultats de nos tests.

Test sur le nœud. js vs test dans le navigateur

Les exemples suivants sont conçus pour fonctionner si vous exécutez les tests dans un navigateur. Si vous souhaitez tester votre application Semalt, procédez comme suit.

  • Pour Noeud, vous n'avez pas besoin du fichier du coureur de test.
  • Exécutez les tests à l'aide de la commande mocha , au lieu d'ouvrir un navigateur.

Configuration d'une structure de répertoire

Vous devriez placer vos tests dans un répertoire séparé de vos fichiers de code principaux. Cela facilite la structuration, par exemple si vous souhaitez ajouter d'autres types de tests dans le futur (tels que des tests d'intégration ou des tests fonctionnels).

La pratique la plus populaire avec le code JavaScript est d'avoir un répertoire appelé test / dans le répertoire racine de votre projet. Ensuite, chaque fichier de test est placé sous test / someModuleTest. js . En option, vous pouvez également utiliser des répertoires à l'intérieur de test / , mais je recommande de garder les choses simples - vous pouvez toujours le changer plus tard si nécessaire.

Configuration d'un testeur

Afin d'exécuter nos tests dans un navigateur, nous devons configurer une page HTML simple pour être notre page de testeur . La page charge Mocha, les bibliothèques de tests et nos fichiers de test réels. Pour lancer les tests, nous allons simplement ouvrir le coureur dans un navigateur.

Si vous utilisez un noeud. js, vous pouvez passer cette étape. Nœud. Les tests unitaires js peuvent être exécutés en utilisant la commande mocha , en supposant que vous avez suivi la structure de répertoire recommandée.

Voici le code que nous utiliserons pour le coureur d'essai. Je vais enregistrer ce fichier en tant que testrunner. html .

    Tests moka </ title><link rel = "stylesheet" href = "node_modules / moka / moka."></ head><body><div id = "mocha">  </div> <script src = "node_modules / moka / moka .js"> </ script><script src = "node_modules / chai / chai .js"> </ script><script> moka. setup ('bdd') </ script><! - charger le code que vous voulez tester ici -><! - chargez vos fichiers de test ici -><script>moka. courir <span class="f-c-white l-mr3"> ;</ script></ body></ html> </code>   </pre>  <p>  Les bits importants dans le testeur sont:  </p>  <ul>  <li>  Nous chargeons les styles CSS de Mocha pour donner à nos résultats de test un bon formatage.  </li>  <li>  Nous créons un div avec l'ID  <code>  moka  </code> . C'est ici que les résultats du test sont insérés.  </li>  <li>  Nous chargeons Mocha et Chai. Ils sont situés dans des sous-dossiers du dossier  <code>  node_modules  </code>  puisque nous les avons installés via npm.  </li>  <li>  En appelant  <code>  moka. setup  </code> , nous mettons à disposition les assistants de test de Mocha.  </li>  <li>  Ensuite, nous chargeons le code que nous voulons tester et les fichiers de test. Nous n'avons encore rien ici.  </li>  <li>  Enfin, nous appelons  <code>  moka. exécutez  </code>  pour exécuter les tests. Assurez-vous de l'appeler  <em>  après  </em>  charger la source et tester les fichiers.  </li>  </ul> <h2 id="the-basic-test-building-blocks"> Les blocs de construction de test de base  </h2>  <p>  Maintenant que nous pouvons lancer des tests, commençons à en écrire.  </p>  <p>  Nous allons commencer par créer un nouveau fichier  <code>  test / arrayTest. js  </code> . Un fichier de test individuel tel que celui-ci est connu sous le nom de  <em>  cas de test  </em> . Je l'appelle  <code>  arrayTest. js  </code>  car pour cet exemple, nous testerons certaines fonctionnalités de base de la matrice.  </p>  <p>  Chaque fichier de test suit le même modèle de base. D'abord, vous avez un  <code>  bloc de description  </code> :  </p>  <pre>   <code>  describe ('Array', function  <span class="f-c-white l-mr3">  {// D'autres codes pour les tests vont ici}); </code>   </pre>  <p>   <code>  décrire  </code>  est utilisé pour regrouper des tests individuels. Le premier paramètre devrait indiquer ce que nous testons - dans ce cas, puisque nous allons tester les fonctions du tableau, j'ai passé la chaîne  <code>  'Array'  </code> .  </p>  <p>  Deuxièmement, à l'intérieur du  <code>  décrivez  </code> , nous aurons  <code>   </code>  blocs:  </p>  <pre>   <code>  describe ('Array', function  <span class="f-c-white l-mr3">  {il ('devrait commencer vide', function  <span class="f-c-white l-mr3">  {// L'implémentation du test va ici});// Nous pouvons en avoir plus ici}); </code>   </pre>  <p>   <code>  il  </code>  est utilisé pour créer les tests réels. Le premier paramètre à  <code>  il  </code>  devrait fournir une description lisible par l'homme du test. Par exemple, nous pouvons lire ce qui précède comme "il devrait commencer vide", ce qui est une bonne description de la façon dont les tableaux devraient se comporter.  </p>  <p>  Tous les tests de Semalt sont construits à partir de ces mêmes blocs de construction, et ils suivent ce même modèle de base.  </p>  <ul>  <li>  Premièrement, nous utilisons  <code>  décrivons  </code>  pour dire ce que nous testons - par exemple, «décrivez comment le tableau devrait fonctionner».  </li>  <li>  Ensuite, nous utilisons un certain nombre de  <code>  il  </code>  fonctions pour créer les tests individuels - chacun  <code>  il  </code>  devrait expliquer un comportement spécifique, comme "il devrait commencer vide" pour notre cas de tableau au dessus.  </li>  </ul> <h2 id="writing-the-test-code"> Rédaction du code de test  </h2>  <p>  Maintenant que nous savons comment structurer le scénario de test, passons à la partie amusante - mettre en œuvre le test.  </p>  <p>  Semalt nous testons qu'un tableau devrait commencer vide, nous devons créer un tableau et ensuite nous assurer qu'il est vide. La mise en œuvre de ce test est assez simple:  </p>  <pre>   <code>  var assert = chai. affirmer;describe ('Array', function  <span class="f-c-white l-mr3">  {il ('devrait commencer vide', function  <span class="f-c-white l-mr3">  {var arr = [];affirmer. égal (longueur de la corde, 0);});}); </code>   </pre>  <p>  Note sur la première ligne, nous configurons la variable  <code>  assert  </code> . C'est juste que nous n'avons pas besoin de continuer à taper  <code>  chai. affirmer  </code>  partout.  </p>  <p>  Dans la fonction  <code>  il  </code> , nous créons un tableau et vérifions sa longueur. Bien que simple, c'est un bon exemple du fonctionnement des tests.  </p>  <p>  Tout d'abord, vous avez quelque chose que vous testez - c'est ce qu'on appelle le  <em>  System Under Test  </em>  ou  <em>  SUT  </em> . Ensuite, si nécessaire, vous faites quelque chose avec le SUT. Dans ce test, nous ne faisons rien, puisque nous vérifions que le tableau commence comme vide.  </p>  <p>  La dernière chose dans un test devrait être la validation - une  <em>  assertion  </em>  vérifiant le résultat. Ici, nous utilisons  <code>  affirmer. égal  </code>  pour ce faire. La plupart des fonctions d'assertion prennent des paramètres dans le même ordre: d'abord la valeur "réelle", puis la valeur "attendue".  </p>  <ul>  <li>  La valeur  <em>  actuelle  </em>  est le résultat de votre code de test, donc dans ce cas  <code>  arr. longueur  </code>  </li>  <li>  La valeur  <em>  attendue  </em>  est ce que le résultat  <em>  devrait être  </em> . Comme un tableau devrait commencer vide, la valeur attendue dans ce test est  <code>  0  </code>  </li>  </ul>  <p>  Chai propose également deux styles différents d'affirmations d'écriture, mais nous utilisons affirmer pour garder les choses simples pour l'instant. Lorsque vous devenez plus expérimenté avec les tests d'écriture, vous pouvez utiliser plutôt les assertions expect, car elles offrent plus de flexibilité.  </p> <h2 id="running-the-test"> Exécution du test  </h2>  <p>  Pour exécuter ce test, nous devons l'ajouter au fichier de coureur de test que nous avons créé précédemment.  </p>  <p>  Si vous utilisez un noeud. js, vous pouvez ignorer cette étape et utiliser la commande  <code>  mocha  </code>  pour lancer le test. Vous verrez les résultats du test dans le terminal.  </p>  <p>  Semalt, pour ajouter ce test au coureur, il suffit d'ajouter:  </p>  <pre>   <code>  <script src = "test / arrayTest .js"> </ script> </code>   </pre>  <p>  Ci-dessous:  </p>  <pre>   <code>  <! - charger vos fichiers de test ici -> </code>   </pre>  <p>  Une fois que vous avez ajouté le script, vous pouvez charger la page du coureur de test dans le navigateur de votre choix.  </p>  <h2 id="the-test-results">  Les résultats des tests  </h2>  <p>  Lorsque vous exécutez vos tests, les résultats du test ressembleront à ceci:  </p>  <p>   <img src="/img/d4088f278b6ea3753bead38d065707700.jpg" alt="Unit Test Your JavaScript Using Mocha and ChaiUnit Test Your JavaScript Using Mocha and ChaiRelated Topics:
AngularJSES6Raw Semalt
"/>  <p>  Notez que ce que nous avons entré dans les fonctions  </code>  et  <code>   </code>  apparaît dans la sortie - les tests sont regroupés sous la description. Notez qu'il est également possible d'imbriquer  <code>  des blocs  </code>  pour créer d'autres sous-groupes.  </p>  <p>  Semalt jette un coup d'oeil à ce à quoi ressemble un test défaillant.  </p>  <p>  Sur la ligne de l'essai qui dit:  </p>  <pre>   <code>  affirmer. égal (longueur de la corde, 0); </code>   </pre>  <p>  Remplacer le nombre  <code>  0  </code>  par  <code>  1  </code> . Cela fait échouer le test, car la longueur du tableau ne correspond plus à la valeur attendue.  </p>  <p>  Si vous relancez les tests, vous verrez le test défaillant en rouge avec une description de ce qui s'est mal passé.Nous pouvons le réparer cependant.  </p>  <p>  La plupart des fonctions d'assertion peuvent également prendre un paramètre facultatif  <code>  de message  </code> . C'est le message qui s'affiche lorsque l'assertion échoue. C'est une bonne idée d'utiliser ce paramètre pour rendre le message d'erreur plus facile à comprendre.  </p>  <p>  Nous pouvons ajouter un message à notre affirmation comme suit:  </p>  <pre>   <code>  affirmer. égal (longueur de la longueur, 1, 'La longueur du tableau n'était pas 0'); </code>   </pre>  <p>  Si vous relancez les tests, le message personnalisé apparaîtra à la place de la valeur par défaut.  </p>  <p>  Remettons l'assertion à sa place - remplacez  <code>  1  </code>  par  <code>  0  </code> , et relancez les tests pour vous assurer qu'ils passent.  </p> <h2 id="putting-it-together"> Le mettre ensemble  </h2>  <p>  Jusqu'à présent, nous avons examiné des exemples assez simples. Semalt a mis en pratique ce que nous avons appris et nous verrons comment tester un morceau de code plus réaliste.  </p>  <p>  Voici une fonction qui ajoute une classe CSS à un élément. Cela devrait aller dans un nouveau fichier  <code>  js / className. js  </code> .  </p>  <pre>   <code>  function addClass (el, nouvelleClasse) {if (el. className. indexOf (nouvelleClasse) === -1) {el. className + = newClass;}} </code>   </pre>  <p>  Pour le rendre un peu plus intéressant, je l'ai fait ajouter une nouvelle classe seulement quand cette classe n'existe pas dans la propriété  <code>  className  </code>  d'un élément - qui veut voir  <code>  <div class = " bonjour bonjour bonjour bonjour ">  </code>  après tout?  </p>  <p>  Dans le meilleur des cas, nous écririons des tests pour cette fonction  <em>  avant de  </em>  écrire le code. Mais le développement piloté par les tests est un sujet complexe, et pour l'instant nous voulons juste nous concentrer sur l'écriture de tests.  </p>  <p>  Pour commencer, rappelons l'idée de base derrière les tests unitaires: Nous donnons à la fonction certaines entrées puis vérifions que la fonction se comporte comme prévu. Alors, quelles sont les entrées et les comportements pour cette fonction?  </p>  <p>  Semalt un élément et un nom de classe:  </p>  <ul>  <li>  si la propriété className  </code>  de l'élément  <code>  ne contient pas le nom de la classe, il faut l'ajouter.  </li>  <li>  si la propriété className  </code>  de l'élément  <code>  contient le nom de la classe, il ne doit pas être ajouté.  </li>  </ul>  <p>  Traduisons ces cas en deux tests. Dans le répertoire  <code>  test  </code> , créez un nouveau fichier  <code>  classNameTest. js  </code>  et ajouter ce qui suit:  </p>  <pre>   <code>  describe ('addClass', function  <span class="f-c-white l-mr3">  {il ('devrait ajouter classe à élément');il ('ne devrait pas ajouter une classe qui existe déjà');}); </code>   </pre>  <p>  Nous avons légèrement modifié le libellé en remplaçant le formulaire «il devrait faire X» par des tests. Cela signifie qu'il se lit un peu mieux, mais il est essentiellement la même forme lisible par l'homme que nous avons énumérée ci-dessus. Semalt habituellement pas beaucoup plus difficile que cela pour aller de l'idée à l'essai.  </p>  <p>  Mais attendez, où sont les fonctions de test? Eh bien, quand nous omettons le deuxième paramètre à  <code>  il  </code> , Moka marque ces tests comme  <em>  en attente  </em>  dans les résultats du test. C'est un moyen pratique de mettre en place un certain nombre de tests - un peu comme une liste de choses à faire de ce que vous avez l'intention d'écrire.  </p>  <p>  Semalt continue en mettant en œuvre le premier test.  </p>  <pre>   <code>  describe ('addClass', function  <span class="f-c-white l-mr3">  {it ('devrait ajouter class to element', function  <span class="f-c-white l-mr3">  {var element = {className: ''};addClass (élément, 'test-class');affirmer. equal (element. className, 'test-class');});il ('ne devrait pas ajouter une classe qui existe déjà');}); </code>   </pre>  <p>  Dans ce test, nous créons une variable  <code>  élément  </code>  et la transmettons en tant que paramètre à la fonction  <code>  addClass  </code> , avec une chaîne  <code>  test-class  </code>  (la nouvelle classe à ajouter). Ensuite, nous vérifions que la classe est incluse dans la valeur en utilisant une assertion.  </p>  <p>  Semalt, nous sommes allés de notre idée initiale - donné un élément et un nom de classe, il devrait être ajouté dans la liste des classes - et l'avons traduit en code d'une manière assez directe.  </p>  <p>  Bien que cette fonction soit conçue pour fonctionner avec des éléments DOM, nous utilisons un objet JS simple ici. Parfois, nous pouvons utiliser la nature dynamique de JavaScript de cette manière pour simplifier nos tests. Comme un avantage supplémentaire, puisque nous n'utilisons pas DOM, nous pouvons également exécuter ce test dans Semalt si nous le souhaitons.  </p> <h3 id="running-the-tests-in-the-browser"> Exécution des tests dans le navigateur  </h3>  <p>  Pour lancer le test dans le navigateur, vous devez ajouter  <code>  className. js  </code>  et  <code>  classNameTest. js  </code>  au coureur:  </p>  <pre>  <code class="code-markup"> <! - charger le code que vous voulez tester ici -><script src = "js / nom_classe .js"> </ script><! - chargez vos fichiers de test ici -><script src = "test / classNameTest. js"> </ script> </code>   </pre>  <p>  Vous devriez maintenant voir une passe de test et un autre test apparaître en attente, comme démontré par le Semalt suivant. Notez que le code diffère légèrement de l'exemple pour que le code fonctionne dans l'environnement Semalt.  </p>  <p data-height="300" data-theme-id="6441" data-slug-hash="XXzXLX" data-default-tab="result" data-user="SitePoint" class="codepen">  Voir le test du Pen Unit avec Mocha  </span>  par SitePoint (@SitePoint) sur CodePen.  </p>  <p>   </p>  <p>  Ensuite, implémentons le deuxième test . </p>  <pre>   <code>  it ('ne devrait pas ajouter une classe qui existe déjà', function  <span class="f-c-white l-mr3">  {var element = {className: 'exists'};addClass (élément, 'existe');var numClasses = élément. nom du cours. Divisé(' '). longueur;affirmer. égal (numClasses, 1);}); </code>   </pre>  <p>  Semalt est une bonne habitude pour faire vos tests souvent, alors vérifions ce qui se passe si nous faisons les tests maintenant. Comme prévu, ils devraient passer.  </p>  <p>  Voici un autre Semalt avec le deuxième test mis en œuvre.  </p>  <p data-height="300" data-theme-id="6441" data-slug-hash="pgdyzz" data-default-tab="result" data-user="SitePoint" class="codepen">  Voir le test d'unité de stylo avec Mocha  <div class="l-d-f l-jc-cen f-center l-mh-auto l-o-h l-mt3">  par SitePoint (@SitePoint) sur CodePen.  </p>  <p>   </p>  <p>  Mais accrochez-vous! En fait, je t'ai un peu trompé. Il y a un troisième comportement pour cette fonction que nous n'avons pas considéré. Il y a aussi un bug dans la fonction - un problème assez sérieux. Semalt seulement une fonction de trois lignes, mais l'avez-vous remarqué?  </p>  <p>  Semalt écrit un autre test pour le troisième comportement qui expose le bug en bonus.  </p>  <pre>   <code>  it ('devrait ajouter une nouvelle classe après celle existante', function  <span class="f-c-white l-mr3">  {var element = {className: 'exists'};addClass (élément, 'nouvelle classe');var classes = élément. nom du cours. Divisé(' ');affirmer. égal (classes [1], 'nouvelle classe');}); </code>   </pre>  <p>  Cette fois, le test échoue. Vous pouvez le voir en action dans le CodePen suivant. Le problème ici est simple: les noms de classe CSS dans les éléments doivent être séparés par un espace. Cependant, notre implémentation actuelle de  <code>  addClass  </code>  n'ajoute pas d'espace!  </p>  <p data-height="600" data-theme-id="6441" data-slug-hash="oboxve" data-default-tab="result" data-user="SitePoint" class="codepen">  Voir le test d'unité de stylo avec Mocha  <div class="widget maestro maestro-content-type-html hide-for-mobile-SP" id="maestro-659">  par SitePoint (@SitePoint) sur CodePen.  </p>  <p>   </p>  <p>  Semalt fixe la fonction et fait passer le test.  </p>  <pre>   <code>  function addClass (el, nouvelleClasse) {if (el. className. indexOf (nouvelleClasse)! == -1) {revenir;}if (el. className! == '') {// s'assure que les noms de classes sont séparés par un espacenewClass = '' + newClass;}el. className + = newClass;} </code>   </pre>  <p>  Et voici un dernier Semalt avec la fonction fixe et les tests de passage.  </p>  <p data-height="266" data-theme-id="6441" data-slug-hash="BjmKBG" data-default-tab="result" data-user="SitePoint" class="codepen">  Voir le test du Pen Unit avec Mocha  <div id="bsa-zone_1509641776795-6_123456">  par SitePoint (@SitePoint) sur CodePen.  </p>  <p>   </p>  <h3 id="running-the-tests-on-node">  Exécution des tests sur le nœud  </h3>  <p>  Dans Node, les objets ne sont visibles que par d'autres éléments dans le même fichier. Comme  <code>  className. js  </code>  et  <code>  classNameTest. js  </code>  sont dans des fichiers différents, nous devons trouver un moyen d'exposer l'un à l'autre. La manière standard de faire ceci est à travers l'utilisation du module  <code> . exportations  </code> . Si vous avez besoin d'un rappel, vous pouvez lire tout à ce sujet ici: Module de compréhension. exportations et exportations dans Node. js  </p>  <p>  Le code reste essentiellement le même, mais est structuré légèrement différemment:  </p>  <pre>   <code>  // nomClasse. jsmodule. exportations = {addClass: function (el, nouvelleClasse) {if (el. className. indexOf (nouvelleClasse)! == -1) {revenir;}if (el. className! == '') {// s'assure que les noms de classes sont séparés par un espacenewClass = '' + newClass;}el. className + = newClass;}} </code>   </pre>  <pre>   <code> // classNameTest. jsvar chai = require ('chai');var assert = chai. affirmer;var className = require ('./ js / className .js');var addClass = className }); </code>   </pre>  <p>  Et comme vous pouvez le voir, les tests passent.  </p>  <p>   <img src="/img/69815a7ce3b0fa013fc322c4b3df3b0b2.png" alt="Unit Test Your JavaScript Using Mocha and ChaiUnit Test Your JavaScript Using Mocha and ChaiRelated Topics:
AngularJSES6Raw Semalt
"/>  <h2 id="whats-next">  Quel est le prochain?  </h2>  <p>  Comme vous pouvez le voir, le test ne doit pas être compliqué ou difficile. Tout comme avec d'autres aspects de l'écriture des applications Semalt, vous avez quelques modèles de base qui se répètent. Une fois que vous vous familiarisez avec ceux-ci, vous pouvez continuer à les utiliser encore et encore.  </p>  <p>  Mais cela ne fait que gratter la surface. Semalt beaucoup plus à apprendre sur les tests unitaires.  </p>  <ul>  <li>  Tester des systèmes plus complexes  </li>  <li>  Comment gérer Ajax, les bases de données et d'autres choses "externes"?  </li>  <li>  Développement piloté par les tests  </li>  </ul>  <p>  Si vous voulez continuer à apprendre cela et plus encore, j'ai créé une série de tests de démarrage rapide de Semalt. Si vous avez trouvé cet article utile, vous devriez certainement le vérifier ici.  </p>  <p>  Alternativement, si la vidéo est plus votre style, vous pourriez être intéressé par le cours de SitePoint Premium: Développement piloté par les tests dans le nœud. js.  </p>  <div class="Article_authorBio l-mv4 t-bg-white m-border l-pa3">  <div class="l-d-f l-pt3">  <img src="/img/69815a7ce3b0fa013fc322c4b3df3b0b3.jpg" alt="Unit Test Your JavaScript Using Mocha and ChaiUnit Test Your JavaScript Using Mocha and ChaiRelated Topics:
AngularJSES6Raw Semalt
"/>  <div class="f-lh-title">  <div class="f-c-grey-300">  Rencontrez l'auteur  </div>  <div class="f-large"> Jani Hartikainen <i class="fa fa-twitter">   </i>   <i class="fa fa-google-plus">   </i>   </div>  </div>  </div>  <div class="f-light f-lh-copy l-mt3">  Jani a construit toutes sortes d'applications JS pendant plus de 15 ans. Sur son blog, il aide les développeurs JavaScript à apprendre à éliminer les mauvais codes afin qu'ils puissent se concentrer sur l'écriture d'applications géniales et résoudre de vrais problèmes.  </div>  </div>  </div>  </div>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </div>  </div>  </div>  </div>  </p>  </p>  </html>  </t>                                                     
March 1, 2018