2011-12-16 14 views
1

getLastModifiedDateを呼び出すたびに新しいDate()を返す必要があります。私は、このモックを使用しています:Java Mockitoと委任

when(network.getLastModifiedDateOf(any(URL.class))). 
      thenReturn(formatDate(new Date())); 

しかし、getLastModifiedDateOfが呼び出されるたびに、それは試験開始時に、同じ日付/時刻を返します。私はmockがヒットするたびにnew Date()を呼び出すためにC#デリゲートのようなものが必要だと思います。

答えて

9

直接戻り値ではなく、Answerコールバックを参照してください。

+0

これはトリッキーなことでした.Mockitoには新しく、私の持っていたのはすべて帰りのハンマーだったので、世界は爪のように見えました。ありがとう。 – ThoughtCrhyme

+1

喜んで助けてください。 'Answer'を使用する必要があることを警告サインにすることができることに注意してください - より多くのロックされたデータがテストに役立つかもしれません。 –

+2

Mockito 1.9.0では、 'when(network.getLastModifiedDateOf(any.URL.class))。then(returnFormattedDate(new Date()));' 'then'は次のようなエイリアスです。 'thenAnswer'と' returnFormattedDate'はもちろん、 'Answer'を返すカスタムメソッドになります。 – Brice