Вступить в клуб →
средняявопросТестирование: xUnit, Moq, WebApplicationFactory

Тест истечения промокода падает в последний день месяца

public bool IsExpired(PromoCode code) => DateTime.UtcNow > code.ValidUntil;

Тест создаёт промокод с ValidUntil = DateTime.UtcNow.AddDays(1).Date и проверяет, что он ещё действует. В некоторые часы тест падает. Сервис на .NET 8. Как сделать код тестируемым?

  • Внедрять TimeProvider и в тестах подменять время
  • Использовать DateTime.Now вместо UtcNow
  • Не запускать тест в последние часы суток
  • Добавить к ValidUntil запас в неделю

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела