La méthodologie TDD, on l’a vu, propose d’écrire les tests comme première étape de code. Mais comment s’y prendre en JavaScript? Jetons un oeil à la solution proposée par les développeurs Yahoo!
Ceux connaissant Java ont l’habitude des frameworks tel JUnit ou encore TestNG. Le principe est le même avec YUI Test (développé donc par Yahoo!) qui va être utilisé lors de cet article.
Si maintenant nous entrons dans le coeur du sujet, imaginons que nous ayons à programmer une fonction qui vérifie que l’entrée d’un formulaire est bien un nombre. Si l’on suit la méthodologie TDD, on écrit d’abord le test de cette fonction. Cela va donner quelque chose comme ça:
var oTestCase = new YAHOO.tool.TestCase({ name: "Test Common Fonctions", setUp : function () { this.data = [-1,1,' -1', '+1', 'a234', '034']; }, tearDown : function () { delete this.data; }, testIsNumber: function () { var n, notN, result; n = this.data[0]; result = isNumber(n); YAHOO.util.Assert.isTrue(result); }, });
Quelques explications sont peut-être nécessaires:
Passons maintenant à la deuxième étape: l’implémentation de notre fonction isNumber:
function isNumber(chain) { try { intval(chain); return true; } catch (e) { return false; } }
Nous avons donc notre implémentation de prête. L’exemple est ici très simple et j’espère qu’il ne déssert par la méthodologie dans le sens que ce n’est pas une perte de temps que de commencer par les tests. Un code dont on prend la peine de bien tester devient vraiment robuste et facilement maintenable. Le développeur garde également confiance en son code et si un nouveau développeur vient sur son code il peut rapidement se faire la main simplement en parcourant les tests! Bref, de nombreux avantages…
Maintenant pour lancer les tests, c’est comme toujours très simple avec YUI:
YAHOO.tool.TestRunner.add(oTestCase); var oLogger = new YAHOO.tool.TestLogger(); YAHOO.tool.TestRunner.run();
Et encore uniquement les deux dernières lignes sont nécessaires! En ajoutant la première on a l’avantage d’avoir un affichage plus précis sur une console comme celle-là:
Simple non? La documentation fera découvrir encore d’autres utilisations possibles de YUI Test mais encore une fois, je ne peux qu’encourager cette méthode de développement qui facilitera la vie à bien plus d’un!
Popularity: 1% [?]