
Сергей Богданов
Газпромбанк
Представляю разработанную мной библиотеку, позволяющую произвольно управлять системным временем в JVM. Она помогает тестировать поведение компонентов, работающих на Java, в различное время.
Теперь можно прогонять тесты такого вида:
@FakeTimeTest
@FakeTime(name = "Стандартное системное время без изменений")
@FakeTime(dateTime = "2012-12-12T23:59:57.123Z", name = "Полночь UTC")
@FakeTime(dateTime = "2012-12-12T23:59:57.123+03:00", name = "Полночь MSK")
@FakeTime(dateTime = "2012-12-12T22:30:55.123Z", name = "Конец суток UTC")
@FakeTime(dateTime = "2012-12-12T01:30:55.123Z", name = "Начало суток UTC")
@FakeTime(dateTime = "2012-12-12T22:30:55.123+03:00", name = "Конец суток MSK")
@FakeTime(dateTime = "2012-12-12T01:30:55.123+03:00", name = "Начало суток MSK")
@FakeTime(tick = 10L, tickUnit = MILLISECONDS, name = "По 10 миллисекунд")
@FakeTime( tickUnit = SECONDS, name = "По 1 секунде")
@FakeTime(uniqueifier = UNIQUE_ATOMIC, tickUnit = SECONDS, name = "Уникально по 1 секунде")
@FakeTime(mode = FIXED_AT, dateTime = "2012-12-12T01:30:55.123+03:00", name = "Время остановлено в 2012 году")
@FakeTime(mode = FIXED, name = "Время остановлено")
@FakeTime(timeZone = "UTC", name = "Таймзона UTC")
@FakeTime(timeZone = "Europe/Moscow", name = "Таймзона Europe/Moscow")
@FakeTime(timeZone = "America/Ciudad_Juarez", name = "Экзотическая таймзона")
@FakeTimeMethod(declaring = TimeConfigProvider.class)
void testInstant(FakeTimeConfig time) {
}
Газпромбанк