Я пишу тесты для HTTP REST-подобного API.Эти тесты являются сквозными тестами, связанными с запущенным приложением (веб-сервер, база данных, все).
Я ищу хороший способ протестировать функции, основанные на времени.Поскольку это сквозной тест, Я не могу просто смоделировать функции, связанные со временем .
В качестве примера подумайте о календаре Google.
Scenario: Event notification
Given it is 15:09
When I create new event starting at 15:20 with email notification 10 minutes in advance
Then I receive email notification within next 3 minutes
Для одиночного теста я могу просто создать вовремя и дождаться электронной почты, но когда у меня повторяются события (скажем, еженедельно), то мне нужно проверить уведомление на следующей неделе.
Iдумал об отправке заголовка, который (в среде разработчика) изменит время приложения, но работник, отправляющий уведомления, работает в отдельном процессе и не будет затронут.