Когда требуется, чтобы прошло какое-то время в системе перед проверкой, хочется по-настоящему подождать, используя Thread.sleep
.
Этот наивный подход будет работать, но он сильно замедлит выполнение тестов. А что, если должен пройти час, прежде чем проверять значение?
Тесты выполняются очень долго.
Нельзя протестировать очень долгие интервалы.
Время это одна из зависимостей проверяемой системы. Если вынести зависимость в специальный класс, то время можно будет контролировать.
Использовать собственного контролируемого поставщика времени.
В Android можнно воспользоваться ShadowSystemTime
из Robolectric.