Introduction à JUnit

Introduction aux tests en Java

Maria Milusheva

Senior Software Engineer

Infos rapides

  • JUnit est la bibliothèque de test Java la plus populaire
  • Elle est bien maintenue et mise à jour en continu

Image du logo JUnit 5.

Introduction aux tests en Java

Écrire un test JUnit

Écrivons un test pour la méthode addTwoNumbers() :

public int addTwoNumbers(int a, int b) {
    return a + b;
}
Introduction aux tests en Java

Annotation JUnit @Test

  • Installez JUnit via un IDE ou des outils de build (exemple dans la source)

  • Chaque test doit avoir l'annotation @Test :

import org.junit.jupiter.api.Test;

@Test 
// La méthode de test sera ici

Annotation : métadonnée spéciale indiquant comment le compilateur et les frameworks doivent traiter la méthode. Les annotations commencent par @

1 https://www.jetbrains.com/help/idea/junit.html
Introduction aux tests en Java

Structure d'un test JUnit

import org.junit.jupiter.api.Test;

@Test 

void testAddTwoNumbers() {
// Arrange - Given int num1 = 2; int num2 = 2;
// Act - When int actual = addTwoNumbers(num1, num2);
// Assert - Then assertEquals(4, actual); }
Introduction aux tests en Java

Instructions assert

  • Moyen rapide de comparer les résultats actuels aux attendus
  • Si attendu et actuel diffèrent, le test échoue
  • Aide à repérer vite les bogues et erreurs

Graphiques représentant une instruction assert

Introduction aux tests en Java

Résultats de test

Considérez l'assertion :

assertEquals(4, actual); // Réussit si actual == 4

En cas de réussite, un message Test passed s'affiche

Si les valeurs diffèrent, par ex. actual = 5 :

org.opentest4j.AssertionFailedError: expected: <4> but was: <5>

Retenez l'ordre des arguments ! En JUnit, le premier est la valeur attendue.

Introduction aux tests en Java

Test supplémentaire : dépassement de capacité

@Test 

void testAddTwoNumbers() { // Given int num1 = 2147483647; int num2 = 1; // When int actual = addTwoNumbers(num1, num2); // Then assertEquals(-2147483648, actual); }
Introduction aux tests en Java

Notes sur JUnit et les tests

  • Un test peut comporter plusieurs assertions
  • Toutes doivent réussir pour que le test passe
  • On peut importer toutes les assertions avec :
import org.junit.jupiter.api.Assertions.*;
Introduction aux tests en Java

Autres notes

  • Outil personnalisé Datacamp utilisé ici, inutile dans un IDE :
import static com.datacamp.util.testing.CustomJUnitTestLauncher.launchTestsAndPrint;
  • import static package.Class.method permet d'appeler method simplement method, sans écrire package.Class.method
import static java.lang.Math.max;

...

max(3,5); // Au lieu de Math.max(3, 5)
Introduction aux tests en Java

Passons à la pratique !

Introduction aux tests en Java

Preparing Video For Download...