Вступить в клуб →
лёгкаявопросАрхитектура приложения: DI, Clean Architecture, CQRS

Сервис уведомлений невозможно протестировать без реального SMTP-сервера

public class NotificationService
{
    public async Task OrderPaidAsync(Order order)
    {
        var smtp = new SmtpSender("smtp.shop.ru", 587);
        await smtp.SendAsync(order.Email, "Заказ оплачен", Render(order));
    }
}

Как сделать сервис тестируемым и настраиваемым?

  • Принимать абстракцию отправителя через конструктор
  • Сделать SmtpSender статическим классом
  • Передавать адрес сервера параметром метода
  • Тестировать только метод Render

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

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

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

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