Вступить в клуб →
сложнаявопросТестирование: JUnit, MockK, Espresso и Compose

Тест срока промокода был зелёным в день написания и упал на следующий

class PromoValidator {
    fun isActive(promo: Promo): Boolean =
        LocalDate.now() <= promo.validUntil
}

@Test
fun promoValidToday() {
    val promo = Promo(validUntil = LocalDate.of(2026, 9, 16))
    assertTrue(PromoValidator().isActive(promo))
}

Тест написали и влили 16 сентября — он был зелёным. 17 сентября он упал у всей команды и на CI, хотя код никто не трогал. Как сделать логику тестируемой?

  • Передавать в валидатор Clock и фиксировать его в тесте
  • Вычислять дату в тесте тоже через LocalDate.now()
  • Выставить на CI часовой пояс Москвы
  • Пометить тест @Ignore как нестабильный

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

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

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

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