Copy of https://perso.isima.fr/loic/java/exo_junit.php
tete du loic

 Loïc YON [KIUX]

  • Enseignant-chercheur
  • Référent Formation Continue
  • Responsable des contrats pros ingénieur
  • Référent entrepreneuriat
  • Responsable de la filière F2 ingénieur
  • Secouriste Sauveteur du Travail
mail
loic.yon@isima.fr
phone
(+33 / 0) 4 73 40 50 42
location_on
Institut d'informatique ISIMA
  • twitter
  • linkedin
  • viadeo

[JavaSE] Découverte de JUnit

 Cette page commence à dater. Son contenu n'est peut-être plus à jour. Contactez-moi si c'est le cas!

Date de première publication : 2013/01/08

Si vous utilisez Eclipse ou Netbeans, il est important de créer un nouveau jeu de tests JUnit car cela permet d'ajouter la bibliothèque au projet.

Vérification des annotations

Voici un jeu de tests à lancer et à tester pour maîtriser les annotations :-) en version 4

public class AEssayer {
  
  // il manque les imports ...

  @BeforeClass
  public static void init() {
    System.out.println("initialisation");
  }
  
  @Test
  @Ignore
  public void test1() {
    System.out.println("test 1");
    assertFalse(true);
  }
  
  @Test
  public void test2() {
    System.out.println("test2");
    assertTrue(true);
  }
  
  @Test
  public void test3() {
    System.out.println("test3");
    assertFalse(false);
  }

  @AfterClass
  public static void end() {
    System.out.println("fin des tests");
  }
  
  @Before
  public void before() throws Exception {
    System.out.println("avant un test");
  }

  @After
  public void after()  {
    System.out.println("apres un test");
  }
}

En version 5 :

public class AEssayer {
  
  // il manque les imports ...

  @BeforeAll
  public static void init() {
    System.out.println("initialisation");
  }
  
  @Test
  @Disabled
  public void test1() {
    System.out.println("test 1");
    assertFalse(true);
  }
  
  @Test
  public void test2() {
    System.out.println("test2");
    assertTrue(true);
  }
  
  @Test
  public void test3() {
    System.out.println("test3");
    assertFalse(false);
  }

  @AfterAll
  public static void end() {
    System.out.println("fin des tests");
  }
  
  @BeforeEach
  public void before() throws Exception {
    System.out.println("avant un test");
  }

  @AfterEach
  public void after()  {
    System.out.println("apres un test");
  }
}

Tous les tests @Test non ignorés @Ignore|@Disabled vont être exécutés mais il n'y a pas de garantie d'ordre.

Si des méthodes @Before|@BeforeEach ou @After|@AfterEach sont spécifiées, elles sont exécutées avant / après chaque test.

Les méthodes @BeforeClass|@BeforeAll ou @AfterClass|@AfterAll ne sont exécutées qu'une seule fois, avant et après les tests. Elles permettent de placer l'environnement de tests (fixture). Ce sont des méthodes de classe.

Mise en place de la classe à tester

Voici la classe toute simple que vous allez coder. Nous allons générer un maximum de code automatiquement avec Eclipse (les menus équivalents existent pour Netbeans)

Livre
- titre : chaîne
- prix : réel
+ Livre(nom prix)
+ getNom/setNom()
+ getPrix/setPrix()
+ equals(o : Object) : booléen
+ equals(o : Object) : booléen

La classe java.lang.Object définit deux méthodes equals() et hashCode() qui doivent être cohérentes pour déterminer si deux instances sont équivalentes ou pas.

Les instances de Livre sont des instances de classe.