Quelqu'un a-t-il intégré Hamcrest à TestNG de façon à ce que ses matchers puissent être facilement utilisés dans les assertions de TestNG ?
Réponses
Trop de publicités?En bref, pour répondre à votre question : Vous n'avez pas besoin d'intégrer TestNG avec Hamcrest. Il suffit d'appeler org.hamcrest.MatcherAssert.assertThat(...)
directement, ce qui lance java.lang.AssertionError
.
Contexte
J'ai trouvé votre question via Google, me posant exactement la même question. N'ayant pas trouvé de réponse satisfaisante, j'ai lu le code source de l'intégration de JUnit avec Hamcrest.
Avec JUnit, l'intégration de Hamcrest est normalement utilisée en appelant :
org.junit.Assert.assertThat(
T actual,
org.hamcrest.Matcher<? super T> matcher)
Lorsque j'ai lu le code source, j'ai découvert qu'il s'agissait simplement d'une petite enveloppe à appeler :
org.hamcrest.MatcherAssert.assertThat(
String reason,
T actual,
org.hamcest.Matcher<? super T> matcher)
Cette fonction lance java.lang.AssertionError
.
Si vous rencontrez un problème avec la méthode vide, je vous suggère d'ajouter hamcrest
premier dans la liste des dépendances. ou importer en premier hamcrest
Cela résoudra le problème.
J'utilisais TestNJ avec rexsl (en interne avec Hamcrest) et il n'arrivait pas à trouver une méthode vide. J'ai ajouté rexsl en premier dans la liste des dépendances, si vous ajoutez une bibliothèque dans le chemin de la classe, vous pouvez essayer d'ajouter d'abord celle de Hamcrest.
J'espère que cela aidera quelqu'un comme moi.