Я не согласен с представлением о фактической отправке электронного письма во время модульного тестирования.Это создает много проблем для IMO и идет вразрез с тем, о чем должно быть юнит-тестирование.
В моем приложении у меня есть интерфейс IMailManager
с такими методами, как SendPasswordResetEmail(string emailAddress)
и тому подобное.Я высмеиваю этот объект во время модульного тестирования и просто проверяю, чтобы мои компоненты вызывали правильный метод почтового менеджера.
Моя фактическая производственная реализация MailManager
обычно использует System.Net.Mail.SmtpClient
внутри, что вам не нужно тестировать.Позвольте Microsoft проверить это.Все, что вам нужно сделать, это убедиться, что ваши настройки SMTP настроены правильно при развертывании, что не должно быть проблемой модульного тестирования.
Если вам нужно протестировать сам почтовый компонент, т. Е. Убедиться, что он генерирует правильное тело сообщения и т. П., Я бы рекомендовал смоделировать то, что необходимо для изоляции этой функциональности в автономном модульном тесте.1011 *