Test JavaScript simple et rapide avec «Assert»

Il y a des années, j'ai appris un "assert" trompeusement simple ?? fonction de John Resig, pour tester votre JavaScript. Étonnamment, à peine cinq ou six lignes, ce code fournit un niveau élevé de puissance et de contrôle sur votre code lors des tests. Je vais vous montrer comment l'utiliser dans le conseil vidéo rapide d'aujourd'hui.


Screencast complet



Code «Affirmer»

     Tests JavaScript faciles     

    C'est tout ce dont vous avez besoin pour la plupart des tests de base! La fonction assert accepte deux paramètres:

    1. résultat: Un booléen, qui indique si votre test a réussi ou échoué
    2. la description: Une brève description de votre test.

    le affirmer Ensuite, la fonction crée simplement un élément de liste, applique une classe de type «réussite» ou «échec», selon que votre test renvoie ou non la valeur true ou true, puis ajoute la description à l'élément de liste. Enfin, ce bloc de code est ajouté à la page. C'est fou simple, mais fonctionne parfaitement.


    Test 1: Votre premier exemple

     fonction add (num1, num2) return num1 + num2;  var result = add (5, 20); assert (résultat == 24, 'Vérification de la fonction d'ajout'); // OU assert (add (5, 20) == 24, 'Vérification de la fonction d'ajout');


    Test 2: fermetures

     var someArray = [1,2,3,4,5], len = someArray.length, i = 0; var count = 0; pour (; i < len; i++ )  setTimeout(function()  assert( count++ === i, 'Checking the value of: ' + i ); , i * 300); 
    Euh oh! Qu'est-il arrivé?

    C’est un problème courant, et la solution consiste à mettre en place une fermeture afin que nous puissions nous souvenir de la valeur de «i». Sinon, comme nous l'avons vu plus haut, le code ne rendra que la valeur finale de la séquence: 5.

     var someArray = [1,2,3,4,5], len = someArray.length, i = 0; var count = 0; pour (; i < len; i++ ) (function(i)  setTimeout(function()  assert( count++ === i, 'Checking the value of: ' + i ); , i * 300); )(i);


    Conclusion

    Au début, il peut sembler que seules de grandes bibliothèques JavaScript sont nécessaires et que celles-ci nécessitent une forme de test; Cependant, c'est loin de la vérité. Comme nous l'avons démontré, même une simple fonction, telle que "l'assert" de Resig, peut potentiellement nous épargner des heures de débogage! Alors, qu'utilisez-vous personnellement pour tester votre code?