2012-08-13 5 views
5

私は周りを見回してきましたが、役に立たないものは何も見つかりませんでした。 hamcrestで動作するサードパーティ製のライブラリがありますか?私は、私は私自身の圧延前に、そこに何があったかどうかを確認したかった日付のHamcrestライブラリ

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

は具体的に私はの線に沿って整合器を探しています。

+3

にこれを追加することでそれを追加することができますこれらのmatcherを実装するのは簡単です –

+6

[Joda Time](http://joda-time.sourceforge.net/)のJediフォークですか? –

答えて

0

fest-assertを試してみてください。hamcrestには対応していませんが、IMHOよりも優れています(「もっと流暢」)。 は、日付と例えば:

@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] 
} 

日付との完全な例は、他の人がthereあり、hereです。

+0

両方のリンクが無効になりました。 – Alex

3

私はあなたの後ろのように見える日付マッチャーのセットを書いています。ソースはこちらhttps://github.com/eXparity/hamcrest-dateです。マッチャー内で使用する方法の例は、

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

あなたはそれが必要このライブラリで、Mavenのは、たぶん、あなたがヨーダの時間を見てみる必要がありますあなたのpom.xml

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

私はあなたがここにリンクしているものは実際にはポスターだと思いますが、自己宣伝の認識を避けるために、これがどのように機能するのかの答えにいくつかの例を挙げることは良い考えです。 – EdC

+0

ヘッドアップありがとう、私は例を追加しました – stewbis

関連する問題