0% ont trouvé ce document utile (0 vote)
361 vues4 pages

TP2 - Premier Test Unitaire Avec JUnit

Transféré par

sindashm18
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
361 vues4 pages

TP2 - Premier Test Unitaire Avec JUnit

Transféré par

sindashm18
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université de Sousse

Travaux pratiques en Test des logiciels


ESSTHS
2022/2023
LI2

Test des logiciels

TP2 : Premier Test Unitaire avec JUnit

Dans ce TP, nous allons découvrir comment gérer un test unitaire avec le Framework Java JUnit4. Nous
étudierons donc un exemple simple d’une spécification. Enfin, nous éclaircissons comment déployer des
différents tests sur cette spécification.

1. Avant de commencer
1.1. Le Framework JUnit4 :
JUnit est un Framework Java open source qui est intégré déjà à Eclipse. Les
principes de ce Framework sont :
• Une classe de tests unitaires est associée à une autre classe.
• Une classe de tests unitaires hérite de la classe
[Link] pour bénéficier de ses méthodes de tests.
• Les méthodes de tests sont identifiées par des annotations Java.

1.2. Cycle de TDD à suivre dans un test unitaire :


1. Ecrire un premier test ;
2. Vérifier qu’il échoue (car le code qu’il teste n’existe pas), afin de vérifier que le test est valide ;
3. Ecrire juste le code suffisant pour passer le test ;
4. Vérifier que le test passe ;
5. Réviser le code (refactoring), i.e. l’améliorer tout en gardant les mêmes fonctionnalités.

1.3. Avantages :
➢ Les tests d’abord ⇒ on utilise le programme avant même qu’il existe ;
➢ Diminue les erreurs de conception ;
➢ Augmente la confiance en soi du programmeur lors de la révision du Code ;
➢ Construction conjointe du programme et d’une suite de tests de non-régression ;
➢ Estimer l’état d’avancement du développement d’un projet (vélocité).

Enseignant : Ala Eddine KHARRAT Page 1/4


TP2 : Premier Test Unitaire avec JUnit

1.4. Instructions de test avec JUnit4 :


Instruction Description
fail(String) fait échouer la méthode de test
assertTrue(true) toujours vrai
assertsEquals(expected, actual) teste si les valeurs sont les mêmes
assertsEquals(expected, actual, tolerance) teste de proximité avec tolérance
assertNull(object) vérifie si l’objet est null
assertNotNull(object) vérifie si l’objet n’est pas null
assertSame(expected, actual) vérifie si les variables référencent le même objet
assertNotSame(expected, actual) vérifie que les variables ne référencent pas le même objet
assertTrue(boolean condition) vérifie que la condition booléenne est vraie
Remarque : L’instruction la plus importante est « fail() » : les autres ne sont que des raccourcis
d’écriture !

1.5. Les annotations avec JUnit :


Annotation Description
@Test méthode de test
@Before méthode exécutée avant chaque test
@After méthode exécutée après chaque test
@BeforeClass méthode exécutée avant le premier test
@AfterClass méthode exécutée après le dernier test
@Ignore méthode qui ne sera pas lancée comme test

2. Appliquer son premier test


Soit la classe Java ci-dessus. Cette classe permet présenter la quantité d’un produit acheté pour une catégorie
donnée. Cette classe est capable aussi d'ajouter deux valeurs ayant la même catégorie.
class Produit {
private int qte;
private String type;

public Produit(int qte, String type) {


[Link] = qte;
[Link] = type;
}

public int getQte() {


return qte;
}

public String getType() {


return type;
}

public Produit ajouter(Produit p) {


return new Produit(getQte() + [Link](), getType());
}
}

Enseignant : Ala Eddine KHARRAT Page 2/4


TP2 : Premier Test Unitaire avec JUnit

A partir de maintenant, nous allons suivre un processus « coder ; tester ; coder ; tester », en utilisant JUnit.
1. Créez la classe « Produit » dans un projet Eclipse. Pour tester notre classe Produit, nous allons créer
une classe de test « ProduitTest » sous Eclipse : File > New > JUnit Test Case.
2. Choisissez « New JUnit 4 test » et cliquer sur « Finish ».

3. Ajoutez une méthode de test à la classe « ProduitTest »


import static [Link].*;

import [Link];

public class ProduitTest {

@Test
public void testSimpleAjouter() {
Produit p15Sport = new Produit(15, "Sport"); //création de données
Produit p32Sport = new Produit(32, "Sport");
Produit expected = new Produit(47, "Sport");
Produit result = [Link](p32Sport); //exécution de la méthode testée
assertTrue([Link](result)); //comparaison
}

4. Tester la méthode « ajouter() » avec le cas de test précédemment défini : Run > Run As > JUnit
test. Que se passe-t-il ? Comment l'expliquez-vous ?

Enseignant : Ala Eddine KHARRAT Page 3/4


TP2 : Premier Test Unitaire avec JUnit

5. Ajouter une méthode de test d'égalité dans la classe de test « ProduitTest »


@Test
public void testEquals() {
Produit p15Sport = new Produit(15, "Sport");
Produit p32Sport = new Produit(32, "Sport");
assertTrue(![Link](null));
assertEquals(p15Sport, p15Sport);
assertEquals(p15Sport, new Produit(15, "Sport"));
assertTrue(![Link](p32Sport));
}

6. Relancer la classe de test « ProduitTest ». Que se passe-t-il ?


7. Surcharger la méthode « equals() » de la classe « Produit » pour passer ce test avec succès.
8. Nous pouvons remarquer la duplication de code dans les méthodes « testSimpleAjouter » et
« testEquals ».
Remédier à ce problème en utilisant l'annotation @Before. Relancer le test pour vérifier que vos
modifications n'ont pas altéré le résultat.

Enseignant : Ala Eddine KHARRAT Page 4/4

Vous aimerez peut-être aussi