Vous êtes sur la page 1sur 3

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=Exception.class) 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 org.junit.Assert 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 org.junit.*;
import java.util.*;
import static org.junit.Assert.*;

public class TestLinkedList {


LinkedList<String> l;

@Before
public void initialisation(){
l=new LinkedList();
}

@After
public void liberation(){
if(l!=null){
Iterator <String> it=l.iterator();
while(it.hasNext()){
it.next();
it.remove();
}}}

@Test
public void sizeTest(){
l.add("Java");
l.add("Java");
assertEquals(l.size(), 2);
boolean b=l.remove("Java");
assertTrue(b);
assertEquals(l.size(), 1); }

@Test(expected=NullPointerException.class)
public void nullTest(){
l=null;
l.add("Impossible");
System.out.println("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(st.hasMoreElements()){
String ch=st.nextToken();
l.add(ch);
}
l.remove("tests");
}}