Dans cet article, il me fait plaisir de vous présenter le framework de test JUnit.
Qu'est-ce que JUnit?
JUnit est une bibliothèque de test unitaire pour le langage de programmation Java.
Elle nous permet de développer des stratégies de tests pour nos applications,
afin d'en tester leurs comportements et ce principalement sur les méthodes que nous
écrivons qui seront utilisés par notre main.
6 fonctions:
- additionner(int x, int y)
- soustraire(int x, int y)
- multiplier(int x, int y)
- diviser(int x, int y)
- getResultat(Calculatrice calculatrice)
- effacerResultat(Calculatrice calculatrice)
Principalement l'application que nous écrirons servira à construire une calculatrice, mais nous
testerons spécifiquement au cours de cet article les méthodes rattachées à notre calculatrice.
Ainsi notre stratégie de test, quoique simpliste et dans le seul but de démontrer l'utilisation de JUnit,
consistera à tester la méthode additionner(int x, int y) et les constructeurs de notre calculatrice:
Calculatrice() et Calculatrice( int x, int y).
Utilisation de l'IDE Eclipse
Pour ceux qui ne sont pas familier avec Eclipse vous pouvez le télécharger ici
Je n'expliquerai pas d'avantage Eclipse car ce n'est pas le but de l'article.
Veuillez importer mon projet dans eclipse Projet Eclipse JUnit
Pour ceux et celles qui désirent s'initier à Eclipse, allez jetter un coup d'oeil sur ce tutoriel
Classes Java
Dans cette section de l'article je vais simplement vous donner le code de chacunes des classes du projet,
ainsi que le package dans lequel les classes se retrouvent.
Dans le package "org.ageei.junit.calculatrice" se trouve:
InterfaceCalculatrice.java
import org.ageei.junit.calculatrice.Calculatrice;
/**
* @author Dominick Rivard
* @date 18 juin 2008
* Définition des méthodes disponibles pour une calculatrice
*/
public interface InterfaceCalculatrice {
public int additionner(int x, int y);
public int soustraire(int x, int y);
public int multiplier(int x, int y);
public int diviser(int x, int y);
public int getResultat(Calculatrice calculatrice);
public void effacerResultat(Calculatrice calculatrice);
}
Calculatrice.java
/**
* Cette classe est fortement inspiré d'un démo
* que nous avons eu au cours d'INF4375
* Le code du cours que je n'ai pas copié mais dont je me suis
* inspiré avait été écrit par Michel Rivard(Démonstrateur)
* @author Dominick Rivard
* @date 18 juin 2008
*/
public class Calculatrice implements InterfaceCalculatrice {
private int x;
private int y;
private int resultat;
/*
* Construccteur par défaut
*/
public Calculatrice() {
super();
this.x = 0;
this.y = 0;
this.resultat = x + y;
}
/**
* Constructeur avec des entier en paramêtre
* @param x un entier quelconque
* @param y un entier quelconque
*/
public Calculatrice( int x, int y ) {
this.x = x;
this.y = y;
this.resultat = 0;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public int getResultat() {
return resultat;
}
private void setResultat(int resultat) {
this.resultat = resultat;
}
/** Méthode disponible sur une calculatrice **/
public int additionner(int x, int y) {
this.resultat = x + y;
return resultat;
}
public int soustraire(int x, int y) {
this.resultat = x - y;
return resultat;
}
public int multiplier(int x, int y) {
this.resultat = x * y;
return resultat;
}
public int diviser(int x, int y) {
this.resultat = x / y;
return resultat;
}
public int getResultat(Calculatrice calculatrice) {
return calculatrice.getResultat();
}
public void effacerResultat(Calculatrice calculatrice) {
calculatrice.setResultat(0);
calculatrice.setX(0);
calculatrice.setY(0);
}
}
Classe Java JUnit
Vous devez obligatoirement inclure le fichier JAR de JUnit
- il est présentement dans mon projet sous le dossier "lib/junit-4.4.jar"
aussi disponible ici sur le site web de JUnit
Comment procéder à l'importation de la librairie JUnit:
- Dans les propriétés du projet Eclipse
- Sous Java BuildPath
- Dans librairies
- Cliquez sur Add Externals JARs
- Parcourez le chemin jusqu'au fichier junit-4.4.jar
Dans le package "org.ageei.junit.tests" se trouve:
TestsJUnits.java
/**
* Cette classe permet d'effectuer des tests JUnit sur la classe:
* org.ageei.junit.Calculatrice
* @author Dominick Rivard
* @date 18 juin 2008
*/
import org.ageei.junit.calculatrice.Calculatrice;
import org.junit.Test;
import static org.junit.Assert.*;
public class TestsJUnits {
@Test
public void testadditionner() {
// Instanciation d'une calculatrice
Calculatrice calculatrice = new Calculatrice();
// x = 7 et y = 9
calculatrice.setX(7);
calculatrice.setY(9);
// addition de 7 + 9 = 16
calculatrice.additionner(calculatrice.getX(), calculatrice.getY());
// Assertion afin de savoir si le test JUnit avec les éléments
// x + y = 16 comme nous avons prédéfini que x = 7 et y = 9
// le test devrait être bon car 9 + 7 = 16
assertEquals(16, calculatrice.getResultat());
System.out.println("Test JUnit\n");
System.out.println("Test #1");
System.out.println("X = " + calculatrice.getX());
System.out.println("Y = " + calculatrice.getY());
System.out.println("Total de x(" + calculatrice.getX() + ") + y(" + calculatrice.getY() +
") = " calculatrice.getResultat() + "\n");
}
@Test
public void testConstructeurParam() {
// Instanciation d'une calculatrice
Calculatrice calculatrice = new Calculatrice(7, 9);
// x = 7 | y = 9 | resultat = 0
// Ce test devrait retourner les valeurs de x et y prises en paramêtre
// et retourner le résultat approprié de notre constructeur avec paramêtre
assertEquals(7, calculatrice.getX());
System.out.println("Test #2");
System.out.println("X = " + calculatrice.getX());
assertEquals(9, calculatrice.getY());
System.out.println("Y = " + calculatrice.getY());
assertEquals(0, calculatrice.getResultat());
System.out.println("Total = " + calculatrice.getResultat());
}
}
Comment fonctionne le projet
Premièrement nous programmons une calculatrice, hors nous devons écrire l'interface qui nous dictera quels sont les
services disponible pour notre calculatrice. Cette interface se nomme InterfaceCalculatrice.java et définie les méthodes décritent
dans la partie "Qu'est-ce que JUnit?". Puis nous devions créer notre calculatrice, celle-ci est crée dans la classe Calculatrice.java.
Elle implémente toutes les fonctions de l'interface et permet d'exécuter une calculatrice.
C'est exactement ces fonctions que nous voudrons tester à l'aide de JUnit.
Puis notre dernière classe de notre projet est TestsJUnits.java, qui exécute les méthodes permettant de faire les tests JUnit.
Cette classe permet donc d'exécuter les tests sur la classe Calculatrice.java et retourne les messages d'erreurs s'il y a lieu ou non
lors de l'exécution des tests. Cette classe retourne aussi l'affichage à la console des résultats des tests.
Comment exécuter le Projet et les Tests JUnit
Premièrement afin d'être sur que le projet fonctionnera vous devez vérifier que vous avez tous les fichiers du projet,
ainis que la librairie JUnit d'importer dans ce dernier.
Vérifier que tous les packages et noms de classes sont bien présent, ainsi que la librairie JUnit.
/////////////////////////// à terminer ///////////////////////
