org matchers framework equalto assertequals java junit hamcrest

java - matchers - Hamcrest-¿Qué versión usar? 1.3 o 2



hamcrest maven (2)

Basado en Hamcrest Github

y JUnit Lambda (Junit 5)

Mi toma en ello

  • hamcrest-junit 2.0 (debería ser) es un nuevo comienzo con el objetivo de desacoplar hamcrest de junit
  • mientras tanto, se inició el proyecto Junit 5 que (también quiere) reducir / eliminar las dependencias de terceros

=> En esta situación, espero que sea prudente que los muchachos de Hamcrest esperen / coordinen con el proyecto JUnit 5 antes de avanzar sustancialmente.

Como mencionó @heenenee, los chicos de Hamcrest se ocuparon con otras cosas y, por lo tanto, no está pasando mucho con el proyecto en este momento.

Contestar

¿Alguien me puede explicar la conexión entre ellos? Porque parece que Hamcrest-Junit 2.0 tiene todo construido desde Hamcrest 1.3

  • Hamcrest-Junit 2.0 comenzó pero los tipos que estaban detrás se pusieron a trabajar poco después (y todavía están) con otros proyectos, por lo que el desarrollo se detuvo.
  • También puede haber algunas incertidumbres con respecto a JUnit 5, lo que puede ser un incentivo para aplazar el desarrollo de Hamcrest-Junit 2.0 hasta la publicación de JUnit 5 (especulación).

... pero no me siento muy cómodo. Porque puedo encontrar gente escribiendo sobre 1.3 y realmente no puedo encontrar el uso de hamcrest-junit 2.0.

Por el momento, aparte de su caso, no hay mucho incentivo para pasar a Hamcrest-Junit 2.0. Una vez que Junit 5 salga a la venta, espero que haya más incentivos para seguir avanzando.

Estoy bastante confundido. Actualmente estoy probando mi aplicación de primavera usando

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>

Fui feliz mientras quise coincidir con las Expresiones Regulares. En Hamcrest 1.3 necesitas escribir tu propio emparejador, que no me gustó mucho. Busqué y encontré que Hamcrest 2.0 tiene algo incorporado, como:

assertThat(DateHelper.getActualDateForXML(), MatchesPattern.matchesPattern("//d{4}+-//d{2}-+//d{2}+T//d{2}+://d{2}+://d{2}+"));

Yo estaba feliz, añadí:

<dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-junit</artifactId> <version>2.0.0.0</version> <scope>test</scope> </dependency>

Y eliminó las 1.3 dependencias de hamcrest de spring-boot-starter-test:

<exclusions> <exclusion> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-library</artifactId> </exclusion> <exclusion> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-core</artifactId> </exclusion> </exclusions>

Ahora todo sigue funcionando como espero que funcione, pero no me siento realmente cómodo. Porque puedo encontrar gente escribiendo sobre 1.3 y realmente no puedo encontrar el uso de hamcrest-junit 2.0.

¿Alguien me puede explicar la conexión entre ellos? Porque parece que Hamcrest-Junit 2.0 tiene todo construido desde Hamcrest 1.3 ...

Gracias ben


Gran respuesta de , que realmente debería estar obteniendo más votos, pero aquí hay información adicional. Si consulta Maven para obtener información sobre las dependencias, Java Hamcrest 2.0.0.0 y Hamcrest JUnit 2.0.0.0 , existen algunos enlaces de usage . En el momento en que escribo esto, son 74 y 68 respectivamente, y no hay proyectos importantes en una breve búsqueda.