2011-12-16 26 views
1

每次我調用getLastModifiedDate時,都需要返回新的Date()。我使用這個模擬:Java Mockito和代表

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

但是,每次getLastModifiedDateOf時間稱爲返回時,測試開始的同一日期/時間。我想我需要類似於C#委託的東西來在每次模擬命中時調用新的Date()。

回答

9

看看Answer回調,而不是直接返回值。

when(...).thenAnswer(new Answer() { 
    Object answer(InvocationOnMock invocation) { 
     return formatDate(new Date()); 
    } 
}); 
+0

這樣做的竅門,對Mockito來說是全新的,我所擁有的只是當時的返回錘子,所以這個世界看起來像一顆釘子。謝謝。 – ThoughtCrhyme 2011-12-16 02:35:38