2012-08-13 29 views
5

Etrafa bir göz attım ama yararlı bir şey bulamadım. Geniş tarih uyumu olan hamcrest ile çalışan 3. parti kütüphaneleri var mı? Hamcrest için kütüphane date

Özellikle ben çizgisinde matchers arıyorum:

assertThat(myDate, is(withinMinutes(sourceDate, 10))); 
assertThat(myDate, is(afterDate(sourceDate))); 
assertThat(myDate, is(betweenDates(startDate, endDate))); 

Ben orada ben kendi haddelenmiş önce bir şey olup olmadığını görmek istedim.

+3

bu ekleme ile ekleyebilirsiniz Bu eşleştirmeyi uygulamak çok kolay –

+6

Bu [Joda Time] Jedi çatalı mı (http://joda-time.sourceforge.net/)? –

cevap

0

fest-assert'u denemelisiniz, hamcrest ile uyumlu değildir, ancak IMHO buna göre daha üstün ("daha akıcı"). tarihle Örneğin: tarih

@Test 
public void is_between_date_assertions_examples() { 

    // various usage of isBetween assertion, 
    // Note that isBetween(2002-12-17, 2002-12-19) includes start date but end date : 
    assertThat(theTwoTowers.getReleaseDate()) 
      // = 2002-12-18 
      .isBetween(theFellowshipOfTheRing.getReleaseDate(), theReturnOfTheKing.getReleaseDate()) 
      .isBetween(parse("2002-12-17"), parse("2002-12-19")) // [2002-12-17, 2002-12-19[ 
      .isBetween("2002-12-17", "2002-12-19") // [2002-12-17, 2002-12-19[ 
      .isNotBetween("2002-12-17", "2002-12-18") // [2002-12-17, 2002-12-18[ 
      .isBetween("2002-12-17", "2002-12-18", true, true); // [2002-12-17, 2002-12-18] 
} 

tam örnek here, diğerleri there bulunmaktadır.

+0

her iki bağlantı da geçersiz. – Alex

3

Yaptığınız şeye benzeyen bir dizi tarih eşleştiricisi yazdım. Kaynak burada https://github.com/eXparity/hamcrest-date. Eşleştirici içinde nasıl kullanılacağına ilişkin bir örnek

assertThat(dateUnderTest, DateMatchers.within(2, TimeUnit.SECONDS, new Date())); 

Sen olması gerektiği bu kütüphane ile, maven Belki Yoda Zamanda bakmak gerekir sizin pom.xml

<dependency> 
    <groupId>org.exparity</groupId> 
    <artifactId>hamcrest-date</artifactId> 
    <version>2.0.1</version> 
</dependency> 
+0

Burada bağlantı kurduğun şeyin aslında posterin peşinde olduğunu düşünüyorum, ama kendini tanıtmanın algılanmasını önlemek için, bunun nasıl işleyeceğine dair bazı örnekler vermek iyi bir fikir. – EdC

+0

Başlıklar için teşekkürler, bir örnek ekledim – stewbis