JDN Développeurs > Client Web > Tests unitaires en JavaScript

Les tests unitaires en JavaScript > 2. JSUnit

Précédente Introduction 
Exemple de mise en place d'un test :
  1. var uneVariable = null;
  2. var uneAutreVariable = null;
  3.  
  4. function mangerLapin() {
  5.   uneVariable = "Lapin bon !";
  6.   }
  7.  
  8. function testMangerLapin() {
  9.   assertEquals("Lapin bon !", uneVariable);
  10.   assertEquals(null, uneAutreVariable);
  11.   }
Résultat complet positif :



Test en progression mais déjà négatif :

Avec JSUnit
Inspiré directement de la famille des XUnit, à commencer par JUnit dont il annonce être le port direct depuis Java vers JavaScript, JSUnit se veut un framework de tests très visuel, et compatible avec le fonctionnement des autres frameworks de cette famille. Dans les faits, JSUnit utilise un serveur JSUnit écrit en Java. L'application est accessible en lançant /jsunit/testRunner.html .

JSUnit requiert plus de préparation que pour Firebug : chaque fonction de test doit commencer par "test", et chaque page testée doit faire appel au script /jsunit/app/jsUnitCore.js, via une balise script dans le head du document. Ainsi, les fonctions de test seront découvertes automatiquement par le serveur. Si les fonctions de tests se trouvent dans un fichier .js lié depuis la page, il faudra lister ces fonctions au moyen de exposeTestFunctionNames().

JSUnit propose propose 12 fonctions d'assertion, la plupart comparables à celles de FireBug, sauf assertNaN(), assertNotNaN(), et fail(). Chaque fonction à tester, par exemple mangerLapin(), doit disposer de son équivalent de test, par exemple testMangerLapin().

Ceci fait, on lance testRunner, auquel on indique le fichier contenant les tests, et on lance le serveur. testRunner affichera alors le résultat : le moindre rouge veut dire qu'au moins un test a échoué.

JSUnit permet également de créer des suites de tests : par le biais de la méthode addTestPage() d'un objet de type jsUnitTestSuite, on pourra construire une collection de pages à tester.

Précédente Retour au sommaire Introduction 
Introduction | Firebug | JSUnit
 
|
Haut de page
Nos autres sites Société | Mentions légales | Contacts | Publicité | PA Emploi | Presse | Recrutement | Tous nos sites | Données personnelles
© Benchmark Group, 69/71 avenue Pierre Grenier. 92517 Boulogne Billancourt Cedex