Tests unitaires en javascript avec fireunit
John Resig, le créateur de jQuery, et Jan Odvarko viennent de publier une extension pour firebug qui pourrait bien révolutionner le monde des tests d’intégration : fireunit.
État des lieux
Jusqu’à maintenant, tester du javascript signifiait tester toute l’application. Dans le monde des tests, on met à l’épreuve d’abord les différentes classes d’une application, puis leurs interactions et enfin leur rendu final.
La première forme est appelé tests unitaires, parce qu’ils isolent une seule classe pour la tester. La seconde est appelée test fonctionnels, parce qu’ils testent le bon déroulement d’une fonctionnalité de l’application. La dernière est appelée tests d’intégration, parce qu’ils testent l’apparence finale telle qu’elle est présentée au visiteur, après l’intégration.
C’est donc dans cette dernière forme qu’on testait javascript. On disait à notre test d’aller sur telle page, de cliquer sur tel élément et de vérifier le résultat. Le problème majeure est que si un problème survient en amont de javascript, dans le backend de l’application, le test échouera.
Ce que fireunit change
Ce que fireunit propose, c’est de faire des tests unitaires pour javascript. Il est donc désormais possible d’isoler une classe javascript du reste de l’application (par exemple, en la chargeant depuis une page HTML vide) et de lancer des batteries de tests dessus. Un autre avantage non négligeable est que les tests de javascript ne reposent plus sur un autre langage.
Il devient alors tout à fait envisageable de faire du test driven development avec javascript, et ça, ça me rend très heureux :)