Istnieje również Cirneco extension. Ma kilka specyficznych dopasowań Date
(na przykład monday()
) i innych, które dotyczą dat z powodu implementacji Comparable
(patrz na przykład between()
, betweenInclusive()
). Plan ma również wspierać czasy Joda w wersji JDK7 biblioteki oraz nowe klasy oparte na datach w wersji JDK8 (głównie LocalDate
).
Można zrobić twierdzeń typu:
final Date date = new Date();
assertThat(date, is(monday())); // JUnit style
given(date).assertIs(monday()); // Cirneco style
można wykorzystywać następujące zależności dla projektu JDK7 zgodny:
<dependency>
<groupId>it.ozimov</groupId>
<artifactId>java7-hamcrest-matchers</artifactId>
<version>0.7.0</version>
</dependency>
lub następujących jeśli używasz JDK8
<dependency>
<groupId>it.ozimov</groupId>
<artifactId>java8-hamcrest-matchers</artifactId>
<version>0.7.0</version>
</dependency>
Dzięki. Wygląda na to, że pozbyli się klasy na rzecz statycznej metody fabrycznej, która uniemożliwia naprawdę stabilne łącze, ale naprawiłem ją tak daleko, jak tylko potrafię. –
To prawda. Istnieją również rozszerzenia, które zapewniają bardziej łatwe do odczytania metody. Np. [Cirneco] (https://github.com/ozimov/cirneco) udostępnia Matchera 'J7Matchers :: after', który jest aliasem dla' OrderingComparison :: greaterThan'. Z mojego punktu widzenia _sematic_ jest zawsze ważny w testach jednostkowych, dlatego zazwyczaj wolę pełne podejście zapewniane przez Google Truth, ale czasami muszę radzić sobie z Hamcrest w starszych projektach. – JeanValjean