Вопрос

Кто-нибудь интегрировал Hamcrest с TestNG, чтобы его средства сопоставления можно было легко использовать в утверждениях TestNG?

Это было полезно?

Решение

Короче говоря, отвечая на ваш вопрос:Вам не нужно интегрировать TestNG с Hamcrest.Просто позвони org.hamcrest.MatcherAssert.assertThat(...) непосредственно, который бросает java.lang.AssertionError.

Фон

Я нашел ваш вопрос через Google, и меня интересует точно такая же проблема.После дальнейшего поиска в Google я не нашел удовлетворительных ответов, поэтому прочитал исходный код интеграции 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.

Другие советы

Если вы столкнулись с проблемой пустого метода, я бы предложил добавить hamcrest первый в списке зависимостей.или сначала импортируйте hamcrest, это решит проблему.

Я использовал TestNJ с rexsl (внутренне используя Hamcrest), и он не смог найти пустой метод.затем я сначала добавил rexsl в список зависимостей. Если вы добавляете библиотеку в путь к классам, вы можете попробовать сначала добавить библиотеку Hamcrest.

надеюсь, это поможет кому-то вроде меня.

Что сработало для меня:1. http://search.maven.org/

  1. Найдите «java-hamcrest», последняя версия на данный момент — «2.0.0.0».

  2. найти зависимость для Gradle (в моем случае)

  3. Добавлена ​​компиляция «org.hamcrest:java-hamcrest:2.0.0.0» в build.gradle в моем проекте.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top