Quelqu'un a-t-il intégré Hamcrest à TestNG afin que ses coupleurs puissent être facilement utilisés dans les assertions TestNG?Mélange de Hamcrest et de TestNG
Répondre
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 qui jette java.lang.AssertionError
.
Contexte
Je trouve votre question via Google, se demandant exactement la même question. Après d'autres recherches sur Google, je n'ai trouvé aucune réponse satisfaisante, alors j'ai lu le code source de l'intégration de JUnit avec Hamcrest.
Avec JUnit, l'intégration Hamcrest est normalement utilisé en appelant:
org.junit.Assert.assertThat(
T actual,
org.hamcrest.Matcher<? super T> matcher)
Quand je lis le code source, je l'ai découvert juste un petit wrapper pour appeler:
org.hamcrest.MatcherAssert.assertThat(
String reason,
T actual,
org.hamcest.Matcher<? super T> matcher)
Cette fonction lancers francs java.lang.AssertionError
.
Si vous rencontrez un problème avec la méthode vide, alors je suggère d'ajouter hamcrest
en premier dans la liste des dépendances. ou importer d'abord hamcrest
, il va résoudre le problème. J'utilisais TestNJ avec rexsl (en interne en utilisant Hamcrest) et il ne trouve pas de méthode vide. puis 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 en premier celui de Hamcrest.
J'espère que cela aidera quelqu'un comme moi.
Ce qui a fonctionné pour moi: 1. http://search.maven.org/
Rechercher 'java-hamcrest la dernière que pour est maintenant '2.0.0.0'
trouver la dépendance pour Gradle (dans mon cas)
Ajout de la compilation 'org.hamcrest: java-hamcrest: 2.0.0.0' pour construire.gradle dans mon projet.
C'est grand, sauf que _TestNG_ a [affirmations douces] (http://static.javadoc.io/org.testng/testng/6.8.21/org/testng/asserts/SoftAssert.html) qui peut ne pas être utilisé à partir de Hamcrest. – Bass