我有一個依賴於「now」Date對象的方法。如何使用mockito間諜來重定向方法調用?
我想爲它編寫一個單元測試。
所以我想注入一個假的固定「現在」日期(使測試確定)。
我試圖注入間諜這樣的:
private ImagesSorter setServerWithSpyImageSorter(User user, List imagesAsInsertionOrder, Date fakeNowDate) throws IOException {
ImagesSorter imagesSorter = spy(new ImagesSorter());
when(imagesSorter.sortImages(imagesAsInsertionOrder, user)).thenReturn(imagesSorter.sortImages(imagesAsInsertionOrder, user, fakeNowDate));
//doReturn(imagesSorter.sortImages(imagesAsInsertionOrder, user, fakeNowDate)).when(imagesSorter).sortImages(imagesAsInsertionOrder, user);
server = VenueServerImplBuilder.create().withImagesSorter(imagesSorter).build();
server.init();
return imagesSorter;
}
,但它不工作。
1)當我使用doReturn(imagesSorter.sortIm..
時,熱切地進行了評估。我不希望發生這種情況。我能避免這種情況嗎?
2)當我註釋掉doReturn(..
和使用when(imagesSorter.sor
我得到了以下錯誤:
org.mockito.exceptions.misusing.UnfinishedStubbingException:
Unfinished stubbing detected here:
E.g. thenReturn() may be missing.
Examples of correct stubbing:
when(mock.isOk()).thenReturn(true);
when(mock.isOk()).thenThrow(exception);
doThrow(exception).when(mock).someVoidMethod();
Hints:
1. missing thenReturn()
2. you are trying to stub a final method, you naughty developer!
你會如何代碼我想幹什麼?
該鏈接是破碎的隊友。 – Ali 2017-08-24 00:25:14
感謝您的支持,現在鏈接已更新 – luboskrnac 2017-08-24 10:14:28