Installation de junit sous Jcreator
Date de publication : 24/10/2006 , Date de mise à jour : 24/10/2006
Par
Humbert Florent (millie)
Jcreator est un environnement de développement pour Java ne fonctionnant que sous Windows. Il n'est pas aussi complet que
Eclipse ou NetBeans mais a l'avantage d'être léger, rapide et simple d'utilisation pour un débutant.
Malheureusement, cet environnement, contrairement à d'autres,
ne permet pas initialement de réaliser des tests unitaires avec junit. Nous allons
voir comment faire.
I. Qu'est-ce que junit ?
II. Bref rappel : Création d'une classe de test
III. Installation de junit
IV. Conclusion
V. Remerciements
I. Qu'est-ce que junit ?
Junit est un paquetage de java permettant de réaliser des tests unitaires de classes.
Les tests unitaires sont une méthode permettant de vérifier le bon fonctionnement
d'une classe (ou plus généralement d'une fonction). Lorsque l'on réalise une classe,
on définit les spécifications de celle-ci (Qu'est ce que les méthodes font exactement ?
Comment sont gérés les cas limites (dépassement), etc.), les tests
permettent d'automatiser la vérification de ces spécifications.
L'intérêt majeur est de vérifier le bon fonctionnement d'une classe indépendamment du reste
de l'application. En effet, lorsque l'on commence à programmer, on écrit souvent l'ensemble
des fonctions (sans les tester une par une) et on teste l'ensemble des fonctions d'un coup.
On peut voir apparaître des erreurs, mais il est parfois très difficile de connaître
l'origine du problème. Réaliser systématiquement de tests permet ainsi d'éviter
ce genre de phénomène. On peut ainsi détecter des erreurs d'implémentation dès le début.
Pour obtenir des informations supplémentaires concernant junit, vous pouvez visiter ce lien
II. Bref rappel : Création d'une classe de test
Je vais rappeler brièvement comment réaliser une classe de test pour junit.
Supposons que l'on souhaite tester une classe s'appelant MaClasse,
on crée une classe supplémentaire (par exemple qui s'appelle : MaClasseTest ou
TestMaClasse) qui contiendra l'ensemble des tests.
Cette classe hérite de la classe junit.framework.TestCase.
Il faut donc noter qu'elle n'aura accès qu'au membre public de la classe MaClasse.
| fichier de test MaClasseTest.java |
public class MaClasseTest extends junit.framework.TestCase
{
public void testLecture()
{
MaClasse m = new MaClasse();
assertTrue("testLecture", m.lire() == 3);
}
} |
Cette classe ne contient pas de méthode main.
Les méthodes exécutées seront celles qui commencent par test et qui sont déclarées public.
(une méthode : public void _testMachin() ne sera donc pas exécutée).
Pour information, sur un système Unix, on exécute cette classe via la commande :
java junit.textui.TestRunner TestMaClasse (une fois qu'elle a été compilée)).
À noter que pour vérifier l'égalité, ou l'inégalité de deux valeurs,
on utilise systématiquement les fonctions : assertTrue, assertEquals
ou encore assertFalse, qui permettent de vérifier si des valeurs sont vraies, ou égales.
En général, une méthode de test teste une configuration possible de la classe et
une méthode particulière.
Lorsque la classe de test sera exécutée, junit retournera
le nombre de tests qui ont réussi, le nombre de tests qui ont échoué (et éventuellement
le nombre d'erreurs suite à un "plantage" de la classe (par exemple,
en écrivant dans une zone non allouée)).
III. Installation de junit
Pour réaliser des tests unitaires avec junit, il vous faudra tout d'abord télécharger
le paquetage junit (téléchargeable sur le site
junit.org).
Il vous faudra décompresser le fichier dans un dossier.
Supposons que le projet soit créé et qu'il contienne deux fichiers. L'un correspond
à la classe Entier (qui dispose d'une méthode main) et l'autre à la classe de test de cette classe.
| fichier Entier.java |
public class Entier {
final private int i;
public Entier(int j)
{
i= j;
}
public int lire()
{
return i;
}
public static void main(String[] arg)
{
System.out.println("Méthode main de la classe Entier");
}
} |
| fichier de test EntierTest.java |
public class EntierTest extends junit.framework.TestCase
{
public void testLecture()
{
Entier i = new Entier(3);
assertTrue("testLecture", i.lire() == 3);
}
} |
Compilation : En essayant de compiler le projet (Build/Compile project ou F7), on obtient le message d'erreur
suivant dans le fichier EntierTest: package junit.framework not exist. En effet, lors de la compilation,
la classe EntierTest hérite de la classe junit.framework.TestCase se trouvant dans la bibliothèque de junit.
Mais comme celle-ci n'est pas intégrée, il vous faut l'intégrer manuellement.
Allez dans Project, Project Properties. Puis cliquez sur l'onglet Required Librairies.
Nous allons ajouter la bibliothèque junit. Faites new. Une fenêtre s'ouvre, faites add puis
Add archive, ajoutez à présenter le fichier junit-4.1.jar qui se trouvait dans le fichier compressé
téléchargé initialement. Vous pouvez donner un nom à la bibliothèque, par exemple junit. Acceptez les modifications.

Ajout de la bibliothèque
Exécution : Maintenant que nous avons réussi à compiler le projet, nous allons chercher à exécuter
les tests unitaires. En exécutant le projet, on se rend compte que c'est la méthode main de la classe Entier qui est
exécutée. En exécutant directement le fichier de test, on obtient l'erreur : Exception in thread "main" java.lang.NoSuchMethodError: main.
En effet, la classe EntierTest ne contient pas de méthode main. Il faut ajouter au projet
une manière d'exécuter le fichier.
Cela se fait en allant dans les propriétés du projet (Project/Project properties) puis JDKTools.
Dans Select Tool type, mettez Run Application, puis créez avec new une nouvelle
configuration d'exécution.
Appelez là, par exemple junitexe, il faut laisser dans commande : "$[JavaHome]\bin\java.exe",
mais changer les paramètres par -classpath "$[ClassPath]" junit.textui.TestRunner $[JavaClass].

Ajout de la configuration d'exécution
Cochez ensuite la nouvelle configuration d'exécution. Vous pouvez exécuter le fichier
et les tests se lanceront.
Pour repasser d'une configuration à une autre (donc par exemple pour exécuter à nouveau la méthode main
de la classe Entier), il faut retourner dans Project/Project properties/JDKTools et cocher Default comme
configuration (et junitexe pour faire un test unitaire).
Evidemment, il est possible d'avoir plusieurs fichiers de tests unitaires, il faudra
les exécuter un par un via Build/Execute File.
IV. Conclusion
J'espère que ce petit tutoriel vous a permis d'installer et exécuter vos premiers tests unitaires
sous Jcreator.
Pour toute remarque ou suggestion, vous pouvez m'envoyer un
message privé.
V. Remerciements


Les sources présentées sur cette page sont libres de droits,
et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©
2006 Florent HUMBERT. Aucune reproduction,
même partielle, ne peut être faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur.
Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E
de dommages et intérêts.
Cette page est déposée à la
SACD.