Aller au contenu principal

Marko Testing Library

[Traduction Bêta Non Officielle]

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 →

Marko Testing Library s'appuie sur DOM Testing Library en ajoutant des API pour travailler avec les composants Marko.

npm install --save-dev @marko/testing-library

Le problème

Vous souhaitez écrire des tests maintenables pour vos composants Marko. Dans cet objectif, vous voulez que vos tests évitent les détails d'implémentation et se concentrent plutôt sur leur vocation première : vous donner confiance. Ainsi, votre suite de tests doit rester maintenable à long terme pour que les refontes de composants (changements d'implémentation sans modification fonctionnelle) ne cassent pas vos tests et ne ralentissent pas votre équipe.

Cette solution

@marko/testing-library est une solution très légère pour tester des composants Marko. Elle fournit des utilitaires simples basés sur @testing-library/dom qui encouragent de meilleures pratiques de test. Son principe fondamental est :

Plus vos tests ressemblent à la façon dont votre logiciel est utilisé, plus ils vous donnent de confiance.

Plutôt que de manipuler des instances de composants Marko rendus, vos tests travaillent avec de vrais nœuds DOM. Les utilitaires fournis facilitent l'interrogation du DOM comme le ferait un utilisateur : trouver des éléments par leur texte de libellé, identifier des liens et boutons via leur texte. L'API est concise et ciblée, tout en offrant des échappatoires si nécessaire.

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 :

  1. Un runner ou framework de test

  2. Liée à un framework de test spécifique : vous pouvez l'utiliser avec Jest, mocha ou d'autres exécuteurs.

NOTE : Cette bibliothèque repose sur DOM Testing Library où se trouve la logique principale des requêtes.