Кто-нибудь интегрировал Hamcrest с TestNG, чтобы его помощники могли легко использоваться в утверждениях TestNG?
Смешивание Hamcrest и TestNG
Ответ 1
Короче, чтобы ответить на ваш вопрос: вам не нужно интегрировать TestNG с Hamcrest. Просто вызовите org.hamcrest.MatcherAssert.assertThat(...), который выдает java.lang.AssertionError.
Фон
Я нашел ваш вопрос через Google, задаваясь вопросом точно такой же проблемой. После дальнейшего Googling я не нашел удовлетворительных ответов, поэтому я прочитал исходный код для интеграции JUnit с Hamcrest.
С JUnit интеграция Hamcrest обычно используется при вызове:
org.junit.Assert.assertThat(
    T actual,
    org.hamcrest.Matcher<? super T> matcher)
Когда я прочитал исходный код, я обнаружил, что это просто небольшая оболочка для вызова:
org.hamcrest.MatcherAssert.assertThat(
    String reason,
    T actual,
    org.hamcest.Matcher<? super T> matcher)
Эта функция выбрасывает java.lang.AssertionError.
Ответ 2
Если вы столкнулись с проблемой с пустым методом, я бы предложил добавить hamcrest сначала в список зависимостей. или импортировать сначала hamcrest, он решит проблему.
Я использовал TestNJ с rexsl (внутренне используя Hamcrest), и он не смог найти пустой метод. то я добавил rexsl сначала в список зависимостей, если вы добавляете библиотеку в путь класса, вы можете попробовать сначала добавить Hamcrest.
надеюсь, что это поможет кому-то вроде меня.
Ответ 3
Что сработало для меня: 1. http://search.maven.org/
-  Найти "java-hamcrest" последним, так как на данный момент это "2.0.0.0" 
-  найти зависимость для Gradle (в моем случае) 
-  Добавлен компилятор 'org.hamcrest: java-hamcrest: 2.0.0.0' для сборки .gradle в моем проекте. 
