У меня есть метод, который опирается на объект «now» Date.Как использовать mockito spy для перенаправления вызова метода?
Я хочу написать для него единичный тест.
Так что я хочу ввести фальшивую дату «сейчас» (чтобы определить тест).
Я попытался придать шпиона, как это:
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
Спасибо за хедз-ап, ссылка обновлена сейчас – luboskrnac