Я выполняю единичный тест, который вызывает класс и проверяет, что метод в этом классе был вызван с определенными параметрами. Один из этих параметров - LocalDateTime.now()
.Mockito. Захват вызова LocalDateTime.now();
Моя проблема заключается в том, что к тому времени, когда управление временем возвращается к моему тесту JUnit, время идет, поэтому, если я попытаюсь сравнить время, используемое в классе, который я звоню с текущим временем, они не собираются совпадение.
Это метод, который я смотрю на:
ServiceStatus serviceStatus = ServiceStatus.createNew(LocalDateTime.now());
Тест JUnit является:
verify(service).saveNotice(LocalDateTime.now));
Я попытался с помощью TimeFactory
установить дату:
given(timeFactory.currentDateTime()).willReturn(NOW);
, а затем:
given(message.getHeader("MESSAGE_CREATED_TIME")).willReturn(NOW.toString());
&
verify(service).saveNotice(NOW));
Но никакой радости.
Любые предложения?
(PS. В реальном коде есть и другие параметры, но я раздели их для простоты и по соображениям коммерческой тайны.)
Я заметил, что вы не приняли ответ. Пожалуйста, подумайте об этом - если вам нужна дополнительная информация, не стесняйтесь оставить мне комментарий. – GhostCat