Pregunta

¿Alguien ha integrado Hamcrest con TestNG para que sus comparadores fácilmente se pueden utilizar en las afirmaciones TestNG?

¿Fue útil?

Solución

En resumen, para responder a su pregunta: No es necesario integrar con TestNG Hamcrest. Sólo tiene que llamar directamente org.hamcrest.MatcherAssert.assertThat(...) que arroja java.lang.AssertionError.

Fondo

He encontrado su pregunta a través de Google, preguntándose exactamente el mismo problema. Después de buscar en Google más, no he encontrado ninguna respuesta satisfactoria, por lo que he leído el código fuente para la integración de JUnit con Hamcrest.

Con JUnit, la integración Hamcrest se utiliza normalmente llamando a:

org.junit.Assert.assertThat(
    T actual,
    org.hamcrest.Matcher<? super T> matcher)

Cuando leí el código fuente, descubrí que sólo un pequeño envoltorio de llamar:

org.hamcrest.MatcherAssert.assertThat(
    String reason,
    T actual,
    org.hamcest.Matcher<? super T> matcher)

Esta función emite java.lang.AssertionError.

Otros consejos

Si se enfrentan a un problema con el método vacío entonces sugeriría añadir hamcrest por primera vez en la lista de dependencias. o importar primera hamcrest, que va a resolver el problema.

Yo estaba usando TestNJ con rexsl (internamente usando Hamcrest) y no encuentra método vacío. Luego añade rexsl por primera vez en la dependencia de la lista, si está agregando biblioteca en la ruta de clase se puede tratar de añadir la primera Hamcrest uno.

espero que ayude a alguien como yo.

Lo que funcionó para mí:  1. http://search.maven.org/

  1. Búsqueda de 'java-hamcrest', la última por ahora es '2.0.0.0'

  2. encontrar la dependencia de Gradle (en mi caso)

  3. Alta compilación 'org.hamcrest: java-hamcrest: 2.0.0.0. A build.gradle en mi proyecto

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top