También está el Cirneco extension. Tiene varios emparejadores específicos Date
(por ejemplo, monday()
) y otros que se aplican a las fechas debido a la implementación de Comparable
(ver, por ejemplo, between()
,). El plan es admitir también Joda Time en la versión JDK7 de la biblioteca y las nuevas clases basadas en fechas en la versión JDK8 (principalmente LocalDate
).
Usted puede hacer afirmaciones como:
final Date date = new Date();
assertThat(date, is(monday())); // JUnit style
given(date).assertIs(monday()); // Cirneco style
Usted puede usar la siguiente dependencia para un proyecto JDK7 compatible:
<dependency>
<groupId>it.ozimov</groupId>
<artifactId>java7-hamcrest-matchers</artifactId>
<version>0.7.0</version>
</dependency>
o el siguiente si está utilizando JDK8
<dependency>
<groupId>it.ozimov</groupId>
<artifactId>java8-hamcrest-matchers</artifactId>
<version>0.7.0</version>
</dependency>
Gracias. Parece que se han deshecho de la clase a favor de un método de fábrica estático, lo que hace que un enlace realmente estable sea imposible, pero lo he solucionado todo lo que puedo. –
Eso es verdad. También hay extensiones que proporcionan algunos métodos más fáciles de leer. Por ejemplo, [Cirneco] (https://github.com/ozimov/cirneco) proporciona el matcher 'J7Matchers :: after' que es un alias para' OrderingComparison :: greaterThan'. Desde mi punto de vista, _sematic_ siempre es importante en la prueba de unidad, por eso generalmente prefiero el enfoque de fujo proporcionado por Google Truth, pero a veces tengo que manejarlo con Hamcrest en proyectos heredados. – JeanValjean