Mock Instant.now() без использования Clock в конструкторе или без объекта ClockJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Mock Instant.now() без использования Clock в конструкторе или без объекта Clock

Сообщение Anonymous »

У меня есть код ниже в одном из моих методов

ZonedDateTime current = Instant.now().atZone(ZoneId.of(AMERICA_NEW_YORK));


Я хочу имитировать текущий в тесте JUnit.

Я пробовал использовать java.time.Clock, но для этого мне нужно добавить его в конструктор класса, поскольку мой код написан в старых версиях Spring, и при использовании конфигурации на основе XML этот класс вызывает проблему, поскольку для него требуется аргумент конструктора в файле application-context.xml, если я использую конструктор с Clock.

Есть ли способ избежать настройки конструктора и имитации текущего в приведенном выше коде.

Обновить

Согласно комментариям Павла Смирнова, я пробовал ниже, но текущий все еще возвращает сегодняшнюю дату, но не ту, над которой я издеваюсь.

ZonedDateTime exactOneDay = ZonedDateTime.parse("Sun Oct 21 12:30:00 EDT 2018", Parser);
doReturn(exactOneDay).when(spyEmployeeHelper).getCurrentTime();
employee = getEmployees().get(0);
assertEquals(Integer.valueOf(1), employee.getNoticePeriod());


Подробнее здесь: https://stackoverflow.com/questions/552 ... ock-object
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»