Ngoài ra còn có Cirneco extension. Nó có một số đối sánh cụ thể Date
cụ thể (ví dụ: monday()
) và những người khác áp dụng cho các ngày vì việc triển khai Comparable
(xem ví dụ between()
, betweenInclusive()
). Kế hoạch này cũng hỗ trợ Joda Time trong phiên bản JDK7 của thư viện và các lớp dựa trên ngày tháng mới trong phiên bản JDK8 (chủ yếu là LocalDate
).
Bạn có thể làm khẳng định như:
final Date date = new Date();
assertThat(date, is(monday())); // JUnit style
given(date).assertIs(monday()); // Cirneco style
Bạn có thể sử dụng phụ thuộc sau đây cho một dự án JDK7 tuân thủ:
<dependency>
<groupId>it.ozimov</groupId>
<artifactId>java7-hamcrest-matchers</artifactId>
<version>0.7.0</version>
</dependency>
hoặc sau nếu bạn đang sử dụng JDK8
<dependency>
<groupId>it.ozimov</groupId>
<artifactId>java8-hamcrest-matchers</artifactId>
<version>0.7.0</version>
</dependency>
Cảm ơn. Có vẻ như họ đã loại bỏ các lớp học có lợi cho một phương pháp nhà máy tĩnh, mà làm cho một liên kết thực sự ổn định không thể, nhưng tôi đã cố định nó như xa như tôi có thể. –
Đó là sự thật. Ngoài ra còn có các phần mở rộng cung cấp một số phương pháp dễ đọc hơn. Ví dụ: [Cirneco] (https://github.com/ozimov/cirneco) cung cấp đối sánh 'J7Matchers :: after' là bí danh cho' OrderingComparison :: greaterThan'. Theo quan điểm của tôi, _sematic_ luôn quan trọng trong thử nghiệm đơn vị, đó là lý do tại sao tôi thường thích cách tiếp cận fulent được cung cấp bởi Google Truth, nhưng đôi khi tôi phải xử lý với Hamcrest trong các dự án kế thừa. – JeanValjean