Как сделать тесты JodaTime переносимыми

Многие функции оперируют с текущим временным поясом. Это хорошо и для приложения, которое автоматически работает с временем корректно и для разработчика, которому не надо писать эту корректность. Но в юнит-тестах «текущий» временной пояс является неопределённым параметром окружения и может вызывать проблемы.

Например у разработчика, находящегося в зоне UTC+3, такой тест отлично отработает:

Однако, когда он его загрузит на CI сервер находящийся в зоне UTC+4, тест сломается:

Чтобы избежать обвинений в сломанном билде, разработчику достаточно будет зафиксировать в тесте временной пояс по умолчанию:

DateTimeZone.setDefault()  меняет временной пояс по умолчанию только для JodaTime объектов, не затрагивая временной пояс всей jvm.