Structure d'un test JUnit
Structure d'un test JUnit
Objectifs du chapitre :
- Comprendre la structure de base d'un test JUnit.
- Apprendre à utiliser les annotations de base (@Test, @Before, @After, @BeforeClass, @AfterClass).
- Découvrir les méthodes de test et les assertions courantes.
5.1 Structure de base d'un test JUnit
Un test JUnit est constitué de classes de test qui contiennent des méthodes de test. Chaque méthode de test est marquée avec l'annotation @Test. Les tests JUnit peuvent également inclure des méthodes de configuration qui s'exécutent avant ou après les méthodes de test, grâce aux annotations telles que @Before, @After, @BeforeClass et @AfterClass.
Exemple de classe de test JUnit 4 :
import org.junit.Before;
import org.junit.After;
import org.junit.BeforeClass;
import org.junit.AfterClass;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class ExampleTest {
@BeforeClass
public static void setUpBeforeClass() throws Exception {
// Code exécuté une seule fois avant tous les tests
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
// Code exécuté une seule fois après tous les tests
}
@Before
public void setUp() throws Exception {
// Code exécuté avant chaque test
}
@After
public void tearDown() throws Exception {
// Code exécuté après chaque test
}
@Test
public void testAddition() {
assertEquals(2, 1 + 1);
}
}
Exemple de classe de test JUnit 5 :
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class ExampleTest {
@BeforeAll
public static void setUpBeforeClass() throws Exception {
// Code exécuté une seule fois avant tous les tests
}
@AfterAll
public static void tearDownAfterClass() throws Exception {
// Code exécuté une seule fois après tous les tests
}
@BeforeEach
public void setUp() throws Exception {
// Code exécuté avant chaque test
}
@AfterEach
public void tearDown() throws Exception {
// Code exécuté après chaque test
}
@Test
public void testAddition() {
assertEquals(2, 1 + 1);
}
}
5.2 Annotations de base
1. @Test :
- Utilisée pour indiquer qu'une méthode est une méthode de test.
- Cette méthode sera exécutée par le framework de test JUnit.
JUnit 4 :
@Test
public void testMethod() {
// Test code here
}
JUnit 5 :
@Test
void testMethod() {
// Test code here
}
2. @Before et @BeforeEach :
- Utilisée pour exécuter une méthode avant chaque méthode de test.
- @Before est utilisée dans JUnit 4, et @BeforeEach dans JUnit 5.
JUnit 4 :
@Before
public void setUp() {
// Setup code here
}
JUnit 5 :
@BeforeEach
void setUp() {
// Setup code here
}
3. @After et @AfterEach :
- Utilisée pour exécuter une méthode après chaque méthode de test.
- @After est utilisée dans JUnit 4, et @AfterEach dans JUnit 5.
JUnit 4 :
@After
public void tearDown() {
// Teardown code here
}
JUnit 5 :
@AfterEach
void tearDown() {
// Teardown code here
}
4. @BeforeClass et @BeforeAll :
- Utilisée pour exécuter une méthode une seule fois avant tous les tests.
- @BeforeClass est utilisée dans JUnit 4, et @BeforeAll dans JUnit 5.
- Ces méthodes doivent être statiques.
JUnit 4 :
@BeforeClass
public static void setUpBeforeClass() {
// Setup code here
}
JUnit 5 :
@BeforeAll
static void setUpBeforeClass() {
// Setup code here
}
5. @AfterClass et @AfterAll :
- Utilisée pour exécuter une méthode une seule fois après tous les tests.
- @AfterClass est utilisée dans JUnit 4, et @AfterAll dans JUnit 5.
- Ces méthodes doivent être statiques.
JUnit 4 :
@AfterClass
public static void tearDownAfterClass() {
// Teardown code here
}
JUnit 5 :
@AfterAll
static void tearDownAfterClass() {
// Teardown code here
}
5.3 Méthodes de test et assertions
Les assertions sont utilisées dans les tests pour vérifier que les conditions spécifiées sont vraies. Si une assertion échoue, le test est considéré comme ayant échoué.
Assertions courantes :
- assertEquals :
- Vérifie que deux valeurs sont égales.
- Syntaxe :
assertEquals(expected, actual)
JUnit 4 et JUnit 5 :
assertEquals(2, 1 + 1);
- assertTrue :
- Vérifie qu'une condition est vraie.
- Syntaxe :
assertTrue(condition)
JUnit 4 et JUnit 5 :
assertTrue(1 + 1 == 2);
- assertFalse :
- Vérifie qu'une condition est fausse.
- Syntaxe :
assertFalse(condition)
JUnit 4 et JUnit 5 :
assertFalse(1 + 1 == 3);
- assertNull :
- Vérifie qu'un objet est null.
- Syntaxe :
assertNull(object)
JUnit 4 et JUnit 5 :
assertNull(null);
- assertNotNull :
- Vérifie qu'un objet n'est pas null.
- Syntaxe :
assertNotNull(object)
JUnit 4 et JUnit 5 :
assertNotNull(new Object());
- assertArrayEquals :
- Vérifie que deux tableaux sont égaux.
- Syntaxe :
assertArrayEquals(expectedArray, actualArray)
JUnit 4 et JUnit 5 :
assertArrayEquals(new int[]{1, 2, 3}, new int[]{1, 2, 3});
Résumé du chapitre :
- La structure de base d'un test JUnit inclut des méthodes de test annotées avec @Test, ainsi que des méthodes de configuration annotées avec @Before, @After, @BeforeClass, @AfterClass (JUnit 4) et @BeforeEach, @AfterEach, @BeforeAll, @AfterAll (JUnit 5).
- Les annotations de base sont essentielles pour configurer et exécuter les tests correctement.
- Les assertions permettent de vérifier les conditions et d'assurer que le code fonctionne comme prévu.