Para usar Hamcrest con JUnit 4 usamos una función assertThat() . Sin embargo, JUnit 5 ya no tendrá una función assertThat() . ¿Cómo uso Hamcrest sin un assertThat() ?
Debe asegurarse de que Hamcrest esté incluido en el classpath y luego usar la función assertThat() proporcionada por Hamcrest. De la Guía del usuario actual de JUnit 5: aserciones de pruebas de escritura ,
La clase org.junit.jupiter.Assertions de JUnit Jupiter no proporciona un método assertThat() como el que se encuentra en la clase org.junit.Assert de JUnit 4 que acepta un Hamcrest Matcher. En su lugar, se alienta a los desarrolladores a utilizar el soporte integrado para los comparadores proporcionado por bibliotecas de aserción de terceros.
El siguiente ejemplo demuestra cómo utilizar la compatibilidad con assertThat() de Hamcrest en una prueba JUnit Jupiter. Siempre que se haya agregado la biblioteca Hamcrest al classpath, puede importar métodos de forma estática como assertThat(), is() y equalTo() y luego usarlos en pruebas como en el método assertWithHamcrestMatcher() a continuación.
import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; import org.junit.jupiter.api.Test; class HamcrestAssertionDemo { @Test void assertWithHamcrestMatcher() { assertThat(2 + 1, is(equalTo(3))); } }Naturalmente, las pruebas heredadas basadas en el modelo de programación JUnit 4 pueden continuar usando org.junit.Assert#assertThat".
Consulte https://github.com/junit-team/junit5/issues/147 :
puede usar ambos, Hamcrest y AssertJ, en JUnit5. Ambos marcos tienen un método de afirmación simple que puede importar y usar si lo desea.
Actualmente, no planeamos admitir estos marcos dentro de nuestras propias afirmaciones para evitar las dependencias. Aún así, uno puede usarlos muy bien.