Выполнение почтовые тесты Junit без электронных писем, на самом деле выходящих

Если вы знаете, сколько строк ожидать, я бы создал отдельную временную таблицу в вашей базе данных с ожидаемой структурой, добавил к ней, затем проверил счет ... Как только вы справитесь с этим, вы можете помассировать это. перед добавлением данных в итоговую производственную таблицу.

33
задан stevedbrown 22 June 2009 в 15:21
поделиться

5 ответов

Альтернативный ответ: Дамбстер - это поддельный SMTP-сервер, разработанный для тестирования. Он написан на Java.

29
ответ дан 27 November 2019 в 18:14
поделиться

Я думаю, что вам нужен проект Mock JavaMail .

15
ответ дан 27 November 2019 в 18:14
поделиться

Я предполагаю, что вы используете Javamail, и проблема в том, что javax.mail.Session является окончательным, и поэтому его нельзя высмеивать.

Похоже, что у других есть предложил вам просто определить свой собственный интерфейс «почтового сеанса» и создать реализацию, использующую Javamail. Затем в ваших тестах вы просто вводите имитацию, в то время как в «реальном режиме» вы вводите реализацию Javamail.

И JMock, и EasyMock будут поддерживать все утверждения, которые вы, возможно, захотите сделать в сообщении, которое вы отправляете, и вы тестируете

Кроме того, я обычно стараюсь избегать любых внепроцессных вызовов из модульных тестов - это убивает вас, когда вы часто запускаете набор тестов, что обычно приводит к тому, что он запускается меньше, и это начинают возникать проблемы с базой кода.

3
ответ дан 27 November 2019 в 18:14
поделиться

Фил Хаак опубликовал в блоге сообщение о модульном тестировании отправки электронной почты с решением, которое он разработал для бесплатного почтового сервера.

0
ответ дан 27 November 2019 в 18:14
поделиться

Мое решение заключалось в том, чтобы обернуть почтовый сервер в класс, который принимает все параметры конфигурации и имеет метод send () . В своих тестах я бы смоделировал этот класс и заменил send () чем-то, что сохраняет текущие параметры для утверждения.

Чтобы проверить, что сама почтовая служба работает, отправьте себе письмо локально. Попробуйте hMail , если у вас Windows.

0
ответ дан 27 November 2019 в 18:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: