Introduction
Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →
Le problème
Vous souhaitez écrire des tests maintenables pour votre interface Web. Dans cette optique, vos tests doivent éviter d'inclure des détails d'implémentation de vos composants et plutôt se concentrer sur la confiance qu'ils sont censés vous apporter. De plus, votre suite de tests doit rester maintenable sur le long terme pour que les refontes de composants (modifications d'implémentation sans changement de fonctionnalité) ne cassent pas vos tests et ne ralentissent pas votre équipe.
Cette solution
La DOM Testing Library est une solution très légère pour tester les nœuds DOM
(que ce soit via une simulation avec JSDOM comme fourni par défaut avec
Jest ou dans un navigateur). Ses principaux utilitaires permettent
d'interroger le DOM pour trouver des nœuds de manière similaire à la façon dont
l'utilisateur découvre les éléments dans la page. Ainsi, cette bibliothèque garantit
que vos tests vous inspirent confiance dans votre code d'interface. Le principe directeur fondamental de la DOM Testing Library est :
Pour atteindre cet objectif, ses utilitaires facilitent l'interrogation du DOM
comme le ferait un utilisateur : trouver des champs de formulaire par leur libellé,
localiser des liens et boutons via leur texte visible, etc. Elle propose aussi une méthode
recommandée pour trouver des éléments via un attribut data-testid, offrant une échappatoire
lorsque le contenu texte ou le libellé ne sont pas pertinents ou pratiques.
Cette bibliothèque encourage le développement d'applications plus accessibles et permet de concevoir des tests qui utilisent vos composants comme le ferait un utilisateur. Cela renforce la confiance dans le bon fonctionnement de votre application en conditions réelles.
Ce que cette bibliothèque n'est pas :
Un runner ou framework de test
Liée à un framework de test spécifique (bien que nous recommandions Jest, elle fonctionne avec tous. Voir Utilisation sans Jest)