Доклад

Проверка корректности поведения Java-программ в различное время

На русском языке

Представляю разработанную мной библиотеку, позволяющую произвольно управлять системным временем в 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) {

}

Спикеры

Доклады