LP GLAASRI - GENIE LOGICIEL Enseignante : Mme Houda ANOUN
JUnit 4
1. Annotations
JUnit 4.x utilise les annotations pour marquer les méthodes et configurer l’exécution des tests.
Les annotations les plus importantes sont présentées ci-après :
Annotation Description
@Test L’annotation @Test identifie les méthodes de test
public void method()
@Test (expected=[Link]) Echoue si la méthode ne lance pas l’exception indiquée
@Test(timeout=100) Echoue si l’exécution de méthode dure plus que 100
millisecondes.
@Before Cette méthode est exécutée avant chaque test. Elle est
public void method() utilisée pour préparer l’environnement de test (ex. lire les
données)
@After Cette méthode est exécutée après chaque test. Elle est
public void method() utilisée pour nettoyer l’environnement de test (ex. libération
de la mémoire).
@BeforeClass Cette méthode est exécutée une fois, avant le début de tous
public static void method() les tests. Elle pourra servir par exemple à créer une
connexion avec une base de données. Les méthodes
marquées avec cette annotation doivent être déclarées
static.
@AfterClass Cette méthode est exécutée une fois, après la fin de tous les
public static void method() tests. Elle pourra servir pour effectuer du nettoyage, par
exemple fermer une connexion avec une base de données.
Les méthodes marquées avec cette annotation doivent être
déclarées static.
@Ignore La méthode de test est ignorée
LP GLAASRI - GENIE LOGICIEL Enseignante : Mme Houda ANOUN
2. Assertions
JUnit propose plusieurs méthodes statiques dans la classe [Link] pour vérifier certaines
conditions.
Le tableau suivant présente les différentes méthodes d’assertion. Les paramètres entre [ ] sont
optionnels.
Méthodes Description
assertTrue([message], boolean condition) Vérifie que la condition est vraie
assertFalse([message], boolean condition) Vérifie que la condition est fausse
assertEquals([String message], expected, actual) Vérifie l’égalité des deux valeurs.
Attention: pour les tableaux, ce sont les
références qui sont comparés et non les
contenus
assertEquals([String message], expected, actual, Vérifie que les valeurs float ou double sont
tolerance) approximativement égaux. La tolérance est le
nombre de chiffres après la virgule qui
doivent être similaires.
assertNull([message], object) Vérifie que l’objet est null
assertNotNull([message], object) Vérifie que l’objet n’est pas null
assertSame([String], expected, actual) Vérifie que les deux variables référencent le
même objet
assertNotSame([String], expected, actual) Vérifie que les deux variables référencent des
objets différents
LP GLAASRI - GENIE LOGICIEL Enseignante : Mme Houda ANOUN
Exemple de fichier de Test sous JUnit 4:
import [Link].*;
import [Link].*;
import static [Link].*;
public class TestLinkedList {
LinkedList<String> l;
@Before
public void initialisation(){
l=new LinkedList();
}
@After
public void liberation(){
if(l!=null){
Iterator <String> it=[Link]();
while([Link]()){
[Link]();
[Link]();
}}}
@Test
public void sizeTest(){
[Link]("Java");
[Link]("Java");
assertEquals([Link](), 2);
boolean b=[Link]("Java");
assertTrue(b);
assertEquals([Link](), 1); }
@Test(expected=[Link])
public void nullTest(){
l=null;
[Link]("Impossible");
[Link]("Ce message ne sera pas affiche");
}
@Test(timeout=1000)
public void suppressionTest(){
String s="JUnit est un framework de tests unitaires il est facile a utiliser";
StringTokenizer st=new StringTokenizer(s, " ");
while([Link]()){
String ch=[Link]();
[Link](ch);
}
[Link]("tests");
}}