Chapitre Les tests unitaires avec JUnit
Assertions et contraintes avec Hamcrest
Dernière modification : Dec 08 , 2024
Assertions et contraintes avec Hamcrest
Créer des assertions et des contraintes avec Hamcrest
A quoi sert Hamcrest ?
Honnêtement, je n'ai que très rarement vu utilisé ce framework à son plein potentiel
Les cas d'utilisations que j'ai répertorié :
- dans l'utilisation des méthodes Mockito.when(), Mockito.verify()
- pour comparer des DTO ou des Entités
- dans les assertions de JUnit 5
C'est quoi Hamcrest ?
- Hamcrest est un framework pour écrire des comparateurs ou des
validateurs. - Les assertions JUnit5 peuvent être améliorées en utilisant Hamcrest, il faut passer un comparateur pour expliquer comment et quoi on évalue.
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;
public class BiscuitTest {
@Test
public void testEquals() {
Biscuit ceBiscuit = new Biscuit("Madeleine");
Biscuit monBiscuit = new Biscuit("Madeleine");
assertThat(ceBiscuit, equalTo(monBiscuit));
}
}
Matcher | Utilisation |
---|---|
is | Sucre syntaxique |
anything | Matche tout |
allOf | vrai si tous les matchers sont vérifiés (opérateur ET) |
anyOf | vrai si au moins un est vrai (opérateur OU) |
not | vrai si le matcher ne matche pas |
equalTo | comparaison avec Object.equals |
instanceof | comparaison avec instanceof |
notNullValue | vrai si la valeur est non null |
nullValue | vrai si la valeur est nulle |
hasProperty | vrai si le getter retourne xxx |
closeTo | vrai si le flottant est proche de la valeur indiquée |
greaterThan, lessThan ... | opérateurs de comparaison |
Cette leçon aborde la gestion des assertions et des contraintes avec JUnit et le framework Hamcrest.
Documentation et resources
Sites intéressants