Vous êtes sur la page 1sur 12

Test unitaires avec JUnit

JUnit
Jrme Cheynet
Les test unitaires : thorie

Tester les mthodes d'une classe

Un test par mthode, un test case par


classe

Un test case fonctionne sparemment de


l'application

Avantages

Composants valids : meilleure qualit du produit


final

vite un !ug caus par une rgression

"orce # sparer interface graphique et


implmentation
Les tests unitaires : vous en avez
dj fait

$emple : classe calculatrice

Add seulement

%ro!l&mes :

'om!reu$ Affichages ()croll !lind*

+emande !eaucoup d'efforts


Qu'est ce que JUnit ?

"rame,or- pour faire des tests :


standardise la fa.on de faire les tests
unitaires

)tandardise :

/es classes de tests 0# vous de les crire1

/'affichage des rsultats des tests 0programme


d'affichage fourni1
Ecrire un test

Classes de tests (standardises*

Classe qui tend 2unit3frame,or-3TestCase

'e contient pas de main

Contient des mthodes test44444401

Charges automatiquement

/es mthodes doivent contenir des assertions

assertTrue0!ool condition1

assertquals0int a, int !1

fail01
Ecrire un test

$emple

Calculatrice simple 0add1

Configuration : clipse install

clipse int&gre un 5i6ard

clipse permet de lancer l'interface graphique


JUnit sur une classe de test
JUnit appliqu un projet

Convention de nommage

Convention pour structurer le pro2et

Convention pour raliser les tests

Travail en !inome autour d'une spcification

7nterface puis tests puis implmentation

Test si possi!le non triviau$

Test des mthodes pu!liques

$cuter les tests en m8me temps que la


compilation
JUnit et nt

n pratique, la !arre vert ou rouge est trop


lente : utiliser l'interface te$te

)ous clipse, crer un fichier !uild3$ml

%ermet de sparer les tests des classes


normales

)rc9:ain

src9Tests

JUnit et nt

+monstration

Classe (Calculatrice* pour calculer ; oprations

Classe (Calculatrice tendue* pour faire le carr


d'un nom!re

< test case

= test suite

Compilation avec Ant


JUnit et nt
nt lance le testrunner de JUnit
<target name="runtests" depends="compiletests" if="junit.present">
<java fork="yes" classname="junit.textui.TestRunner"
taskname="junit" failonerror="true">
<arg value="fr.umlv.exposeJUnit.calculators.llTests"!>
<classpat">
<#$$ TestRunner se trouve dans junit.jar $$>
<pat"element location="%&'(rogram
)iles'junit*.+.,'junit.jar"!>
<#$$ -es classes . tester sont dans un jar $$>
<pat"element location="/uild!li/!01app.name2.jar" !>
<#$$ -es classes de test sont dans un r3pertoire $$>
<pat"element location="/uild!testcases" !>
<!classpat">
<!java>
<!target>
Tips pour nt

Ant ne trouve pas un compilateur 2avac :


deu$ solutions

)pcifier # eclipse une autre machine virtuelle

5indo,s9%references9Ant9>untime9>untime
Classpath : a2outer li!9tools32ar qui est dans le
rpertoire 2ava home

Ant ne conna?t pas JUnit : deu$ solutions

Configurer Ant via clipse : 5indo, 9


%references 9 Ant 9 a2outer le 2ar de 2unit

)pcifier le classpath dans le fichier !uild3$ml

Attention avec les accents

)i vous ne spcifie6 pas le 2eu de caract&re


utilis, il ne doit pas y avoir d'accents m8me dans
les commentaires
!rsentation JUnit
@uestions 9 rponses