Introduction à JUnit

Introduction aux tests en Java

Maria Milusheva

Senior Software Engineer

En bref

  • JUnit est la bibliothèque de tests Java la plus utilisée
  • 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 avec un EDI ou des outils de construction (exemple dans la citation)

  • Chaque test doit avoir l'annotation @Test :

import org.junit.jupiter.api.Test;

@Test 
// Test method will be here

Annotation : métadonnées indiquant comment le compilateur et les cadres gèrent 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

  • Façon rapide de comparer les résultats observés aux résultats attendus
  • Si les résultats ne concordent pas, le test échoue
  • Aide à détecter vite les bogues et erreurs

Graphique 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, affiche le message Test passed

Si les valeurs ne sont pas égales, p. ex. actual = 5 :

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

Souvenez-vous de l'ordre des arguments ! En JUnit, le premier est la valeur attendue.

Introduction aux tests en Java

Test additionnel : 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 contenir plusieurs assertions
  • Toutes les assertions 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

  • Ce qui suit est un outil personnalisé de Datacamp, inutile dans un EDI :
import static com.datacamp.util.testing.CustomJUnitTestLauncher.launchTestsAndPrint;
  • import static package.Class.method permet d'utiliser method tel quel, 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...