Les tests unitaires avec JUnit dans Netbeans (6.8)

Qu’est-ce qu’un test unitaire ?

Un teste unitaire est une méthode permettant de tester une partie code (appelé unité). Le teste consiste a vérifier que le retour de l’exécution de la portion de code correspond a ce que l’on attend. Il est exécuté indépendamment du programme en créant un environnement d’exécution spécifique à la portion de code. Cela permet d”eviter de devoir recompiler tout un logiciel pour verifier la correction d’un bug des fois assez difficile a declencher “manuellement” ou pour tester des fonctionnalitées profonde dans le logiciel. Imaginez que vous deviez tester tout open-office a la main, fonction par fonction dans différent user-case. A la place on ecrit un teste qui s’executer sur la portion de code définie. Le test unitaire est souvent mis en place dans les projet basé sur les méthodologies Agile ou l’Extreme Programming. JUnit lui est un framework de test unitaire, décliné sur plusieurs language (NUnit, PHPUnit,…) Il est intégré nativement a Netbeans. Pour cet article je suis en version 6.8 avec JUnit compatible 4.x

1. Environnement de test

Pour comment on vas prendre un projet vierge Testing et y rajouter un classe Function
Voici le contenu des deux fichiers.

Main.java

Function.java

On se limite au strict minimum. Ceci, afin de bien montrer que le test est indépendant de l’exécution du programme main.En effet, aucun appel a Function.FaireQuelqueChose() n’est réalisé, pourtant nous pourrons le tester.
On vas maintenant rajouter le teste : Tools -> Create JUnit Test

Et on valide la création du teste.
A ce moment la l’architecture du projet doit ressembler a cela :

On a donc main, un classe function et un test créé par classe

2.Création d’un test

JUnit a créé un teste par défaut dans FunctionTest.java :

On vas le supprimer et en écrire qui vas vérifier que si on appel FaireQuelqueChose(10) il retourne bien 100.

On a donc par ligne :
1. On écrit sur la sortie console de test le nom du test
2. On initialise x qui sera envoyé en argument a la fonction testé
3. On créé un instance de fonction
4. On définit result qui est le résultat devant être retourné par la fonction
5. On teste la fonction a proprement dit en vérifiant que le résultat et le résultat attendu soit égaux

3. Exécution du test

Pour exécuter le test il suffit de faire un clic droit sur le projet et choisir test.
Ceci devrait nous retourner :

On remarque que un test a réussi et un autre échoue.
Celui que nous avons écrit a réussi car la fonction qui multiplie par 10 l’argument qu’on lui passe
a bien retourné 100. Le second, qui s’effectue sur main a échoué ce qui est normal. Les testes par défauts
créé par JUnit fail tout le temps du fait de l’instruction :

fail(“The test case is a prototype.”);

Supprimez-la et le test sur Main passera

Conclusion

Voila, un article sans prétention pour démystifier un peux cette partie du développement logiciel qui est souvent mis
de coté par les développeurs autodidactes.

Ressources utile pour la suite :
Netbeans : http://netbeans.org/
JUnit : http://www.junit.org/
JUnit Reference Manual : http://kentbeck.github.com/junit/javadoc/latest/

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s