Tutoriel Eclipse – JUnit: Mon premier test automatique

Cet article est un extrait du livre sur JUnit

Démarche

Nous allons voir comment écrire notre premier test unitaire pas à pas. Pour ce faire, nous utiliserons le projet de la calculatrice comme exemple.

  • Tout d’abord, nous créerons le projet de calculatrice.
  • Puis nous écrirons la classe d’addition.
  • Ensuite, il faudra créer le répertoire des tests dans lequel seront classés tous les tests. Chaque équipe peut décider de la façon dont elle souhaite organiser son répertoire de code source et en particulier le code de test. Il existe néanmoins une façon classique de procéder qui consiste à créer un dossier de tests symétrique au répertoire des sources pour y classer les tests selon la même organisation de paquet. Cette façon de procéder a l’avantage d’isoler les classes de tests des classes de source tout en permettant aux tests d’accéder à la portée de définition du paquet. Ainsi, lors de la génération de code, il est simple d’isoler les tests du code tout en gardant les classes de tests proches du code source dans une vue par paquet.
  • Enfin, nous pourrons écrire la classe de tests voulue.

Eclipse

Présentation de l’IDE

Eclipse est aujourd’hui la référence en matière d’environnement de développement et c’est probablement l’outil le plus utilisé. Il bénéficie du soutien de gros industriels ainsi que d’une large communauté. Il intègre aujourd’hui JUnit en standard.

Guide pas à pas

  • Cliquez sur File – New – Java Project.
  • Nommez votre projet calculatrice en laissant les options par défaut puis cliquez sur OK.
  • Ajoutez un package math dans le répertoire src.
  • Ajoutez la classe Addition dans le répertoire src.
package math;

class Addition {
   public Long calculer(Long a, Long b) {
      return a+b;
   }
   public Character lireSymbole() {
      return '-';
   }
}
  • Ajoutez un nouveau dossier de sources nommé tests au même niveau d’arborescence que src.
  • Dans l’explorateur de paquets, faites un clic droit sur la classe Addition.
  • Dans le menu contextuel, cliquez sur New – JUnit Test Case.

Un panneau s’affiche alors :

Dans ce panneau :

  • Sélectionnez le bouton radio New JUnit 4 test.
  • Changez le dossier Source folder pour tests.
  • Nommez la classe AdditionTest.
  • Cochez les cases setUp() et tearDown().
  • Dans le champ Class under test, saisissez math.Addition.
  • Enfin cliquez sur Finish.

Eclipse va remarquer que la bibliothèque de JUnit est absente du projet et vous propose d’ajouter automatiquement cette dernière au projet.

  • Dans le panneau qui apparaît, cliquez sur OK.

Eclipse va maintenant créer automatiquement le squelette de la classe de test :

package math;

import org.junit.After;
import org.junit.Before;

public class AdditionTest {

   @Before
   public void setUp() throws Exception {
   }

   @After
   public void tearDown() throws Exception {
   }

}

Il ne reste plus alors qu’à remplir cette dernière.

package math;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;

public class AdditionTest {
   protected Addition op;

   @Before
   public void setUp() {
      op = new Addition();
   }

   @After
   public void tearDown() {
   }

   @Test
   public void testCalculer() throws Exception {
      assertEquals(new Long(4), 
                   op.calculer(new Long(1), new Long(3)));
   }

   @Test
   public void testLireSymbole() throws Exception {
      assertEquals((Character)'+', op.lireSymbole());
   }
}
  • Dans l’explorateur de paquets, faites un clic droit sur la classe AdditionTest.
  • Dans le menu contextuel, cliquez sur Run As – JUnit test.
  • Enfin, le premier rapport de tests s’affiche !

La barre de progression est rouge, indiquant qu’au moins un test est en échec. Le rapport d’erreur permet de visualiser les tests en échec et d’afficher la cause et l’origine du problème. Dans ce cas, une erreur s’est glissée sur le symbole de l’addition!

Et vous, comment générez-vous vos tests automatiques?

29 thoughts on “Tutoriel Eclipse – JUnit: Mon premier test automatique

  1. merci c’est bien pour commencer avec JUNIT : je suggere quelque chose si jamais vous voulez ameliorer votre tuto : c’est de donner des explications a la fin pour les differentes mises en places des cas de test : “cas droit” et “cas d’erreur” et puis l’interpretation des résultats. autrement c’est mortel, merci encore

    • Merci pour ton retour.
      J’ai du mal à en voir l’intérêt du @Ingore. Si le test n’est pas utile, j’aurais plutôt tendance à le mettre en commentaire: je trouve cela plus visible.
      Je suis curieux de savoir quand cela te semble utile?
      T’en sers-tu?

      • Hello.
        Le @Ignore permet de signaler qu’un test est écrit mais que la méthode/le code à tester n’est pas prêt pour test.
        Il n’est donc pas question ici de signaler un test inutile mais bien que la méthode/le code correspondant au cas de test n’est pas encore testable.

        Sympa dans un contexte TDD.

        En espérant avoir éclairci un peu ta lanterne

  2. Merci pour tutoriel, c’est une initiation réussite pour moi dans ce suje tde testing. Tant de fois j’ai entendu parler des tests unitaires et du framework JUnit que j’ai déjà eu l’occasion d’utiliser une fois et très rapidement que j’en ai rien capté. J’espère m’améliorer encore dans ce sujet car je trouve très intéressant.

  3. Bonjour, merci pour ce tuto c eest très utile pour un début et surtout simple à comprendre.
    Pour les curieux, il faut remplacer le signe “+” par un “-” pour ne plus avoir d’erreur.

    ++

  4. Bonjour,
    Moi j’ai tout fait comme la tuto et au moment de faire cette action :”Dans le menu contextuel, cliquez sur Run As – JUnit test.” j’ai un fenêtre qui s’ouvre et qui me dit :”No JUnit test found”.
    Quelqu’un pourrai m’aider?
    Merci d’avance.

  5. salut merci pour le tuto. j’aimerai vous questionné a propos de ces lignes :
    -c quoi le role de cette ligne
    protected Addition op;
    ma deuxième question est : pourquoi mettre cette line la methodes setUp Exactement
    op = new Addition();

Leave a Reply

Your email address will not be published. Required fields are marked *