Java 8 time и тесты

В состав Java 8 вошёл пакет java.time, который на самом деле является ни чем иным, как старой и доброй библиотекой Joda-Time, в которой уже был специальный метод DateTimeUtils.setCurrentMillisFixed, с помощью которого можно было писать полноценные тесты. Я уже описывал это в одной из своих прошлых статей.

Однако в пакете java.time, работу с которым я уже тоже описывал в статье учебника, нет класса DateTimeUtils. Как же нам писать тесты?

В пакете java.time из Java 8 принят немного другой подход, основанный на классе Clock. Все методы, создающие экземпляры классов с текущей датой и / или временем принимают экземпляр этого класса в качестве параметра:

В случае работы со Spring Framework лучше создать бин Clock:

При написании тестов нам будет нужно просто создать экземпляр Clock, который всегда возвращает одну и ту же дату, одно и то же время, в одном и том же часовом поясе:

Вот и всё. Всем спасибо. Записал здесь только для того, чтобы не забыть.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *