Développons en Java avec Eclipse13/07/2003
10. JUnit et Eclipse
10.1. Paramétrage de
l'environement
10.2. Ecriture des cas
de tests
10.3. Exécution des cas
de tests
La version 2.1 d'Eclipse intègre la possibilité
d'utiliser JUnit directement dans l'IDE.
JUnit est un framework open source pour réaliser des tests
unitaires sur du code Java. Le principal intérêt est de
s'assurer que le code répond toujours au besoin même après
d'éventuelles modifications.
Le but est d'automatiser les tests. Ceux ci sont exprimés
dans des classes sous la forme de cas de tests avec leurs
résultats attendus. JUnit exécute ces tests et les
comparent avec ces résultats.
Avec Junit, l'unité de test est une classe dédiée qui
regroupe des cas de tests. Ces cas de tests exécutent les
tâches suivantes :
-
création d'une instance de la classe et de tout autre
objet necessaire aux tests
-
appel de la méthode à tester avec les paramètres du cas
de test
-
comparaison du résultat obtenu avec le résultat attendu :
en cas d'échec, une exception est levée
10.1. Paramétrage de
l'environement
Pour pouvoir utiliser JUnit dans un projet, il faut ajouter
le fichier junit.jar dans le classpath du projet. Il faut
pour cela :
-
sélectionner les propriétés du projet
-
dans l'onglet librairies, cliquer sur
« Add External Jar »
-
sélectionner le fichier junit.jar dans le répertoire
plugins/org.junit.3.8.1 du répertoire d'Eclipse
Eclipse ajoute le fichier junit.jar au classpath
La classe suivante est utilisée comme classe à tester avec
JUnit.
package com.moi.test.junit;
public class MaClasse {
public int additioner(int a, int b) {
return a + b;
}
}
10.2. Ecriture des cas
de tests
Pour utiliser JUnit, il faut créer une classe qui va
contenir les cas de test.
Il faut créer une nouvelle entité de type
java/JUnit/TestCase
Si le fichier junit.jar n'est pas inclus dans le
classpath du projet, un message d'erreur est affiché
et il est impossible de poursuivre l'exécution de
l'assistant.
Il faut compléter la classe générée selon les
besoins : par exemple, ajouter un attribut qui va
contenir une instance de la classe à tester, ajouter
l'instanciation de cette classe dans la méthode
setUp() et libérer cette instance dans la méthode
tearDown().
Il faut ajouter les traitements nécessaires dans les
méthodes testXXX() en utilisant l'API de JUnit.
package com.moi.test.junit;
import junit.framework.TestCase;
public class MaClasseTest extends TestCase {
private MaClasse maClasse = null;
public MaClasseTest(String arg0) {
super(arg0);
}
public static void main(String[] args) {
junit.swingui.TestRunner.run(MaClasseTest.class);
}
protected void setUp() throws Exception {
super.setUp();
maClasse = new MaClasse();
}
protected void tearDown() throws Exception {
super.tearDown();
maClasse = null;
}
public void testAdditioner() {
assertTrue(maClasse.additioner(2,2) == 4);
}
}
JUnit utilise l'instrospection pour exécuter les
méthodes commençant par test.
10.3. Exécution des cas
de tests
Pour exécuter les tests, il faut exécuter la classe en tant
que « JUnit Test ».
Eclipse exécute les tests et affiche le résultat dans une
vue dédiée.
Si tous les cas de tests ont été exécutés avec succès, une
ligne verte est affichée.
Cette vue contient deux onglets :
-
« Failures » : contient la liste des cas
de tests qui ont échoués
-
« Hierarchy » : contient une arborescence
des cas de tests
Dans le cas où un ou plusieurs tests échouent, la ligne est
rouge.
public void testAdditioner() {
assertTrue(maClasse.additioner(2,2) == 4);
assertTrue(maClasse.additioner(2,3) == 4);
}
Un exécution permet d'avoir le résultat
suivant :
Copyright (C) 1999-2003 Jean Michel DOUDOUX
|