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

Безобидный рефакторинг сервиса сломал 40 тестов с Verify

service.Checkout(cart);

repo.Verify(r => r.GetCart(cart.Id), Times.Once);
pricing.Verify(p => p.Calculate(It.IsAny<Cart>()), Times.Once);
repo.Verify(r => r.Save(It.IsAny<Order>()), Times.Once);

Разработчик кэшировал корзину, чтобы не читать её дважды, — поведение для клиента не изменилось, но упали 40 тестов. Что не так с тестами?

  • Они проверяют порядок вызовов, а не результат
  • В них не хватает Verify для кэша
  • Нужно использовать Times.AtLeastOnce везде
  • Moq нельзя использовать для репозиториев

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

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

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

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