Это зависит от уровня тестирования, который вы хотите. Если вас больше интересует тестирование метода, а рассылка по электронной почте - лишь малая часть, вы можете подумать о том, чтобы отключить службу отправки писем. Gerrie Ссылка хорошая.
Однако, если вы действительно хотите проверить отправку почты, вот несколько идей.
- Используйте SmtpDeliveryLocation для вывода электронного письма в папку вместо почтового сервера. Затем вы можете проверить папку.
- Отправьте электронное письмо, а затем отправьте запрос на удаленный POP-сервер, чтобы узнать, пришло ли оно.
- Отправьте и предположите, что это просто сработало, если нет исключений. Я не могу вспомнить, является ли SmtpClient.Send блокирующим или неблокирующим.
Поскольку эти тесты обычно подразумевают общение с внешними вещами, они будут называться интеграционными тестами , а не модульными тестами.
Но в целом, я думаю, вы будете более заинтересованы в том, чтобы правильно указывать адреса форматирования / адреса электронной почты, чем в том, правильно ли Microsoft реализовала SmtpClient. Так что модульное тестирование и макеты имеют больше смысла.