Рейтинг:0

Как я могу протестировать код, который использует cron для планирования?

флаг cn

У меня есть пользовательский код на моем сайте, который планирует отправку электронных писем. Когда адрес электронной почты установлен, поле учетной записи пользователя обновляется. Итак, я хочу написать тест, который:

  1. Прыжки вперед во времени в будущее
  2. Запускает хрон
  3. Проверяет значение поля электронной почты
  4. Прыгает вперед во времени в будущее (и повторяется 1-3)

Как правило, чтобы ускорить время в своих тестах, я использую Тестирование даты и времени модуль, но это не работает для настройки cron (cron всегда выполняется в настоящее время).

Как я могу подделать время запуска cron, чтобы я выполнял cron, как если бы он был в будущем?

Kevin avatar
флаг in
Не могли бы вы сделать внутреннюю логику сервисом и протестировать ее вместо этого? Проверяет ли cron время как now()? Можете ли вы издеваться над службой DateTime, чтобы вернуть издевательскую дату/время для вашей службы?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.