28 votes

Mélange de Hamcrest et TestNG

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 ?

49voto

kevinarpe Points 2902

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 .

2voto

Shobhit Points 21

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.

0voto

R2D2 Points 21

W 1. http://search.maven.org/

  1. Recherchez 'java-hamcrest', la dernière version est '2.0.0.0'.

  2. trouver une dépendance pour Gradle (dans mon cas)

  3. J'ai ajouté la compilation 'org.hamcrest:java-hamcrest:2.0.0.0' à build.gradle dans mon projet.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X