Методы тестирования в JUnit предотвращают отправку электронной почты - PullRequest
1 голос
/ 27 мая 2009

Я занимаюсь разработкой на Java и использую JUnit для тестирования некоторых своих методов. Некоторые из моих методов отправляют электронные письма. Письма фактически отправляются отдельной веткой, которая создается. Проблема в том, что всякий раз, когда я тестирую эти методы, все идет хорошо, за исключением того, что электронные письма фактически не отправляются. Я следил за выполнением всего стека, и каждый метод, связанный с отправкой электронных писем, вызывается и выполняется правильно. Итак, я протестировал методы за пределами JUnit, и письма отправляются нормально.

Ответы [ 4 ]

2 голосов
/ 27 мая 2009

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

Возможно, вам понадобится написать какой-нибудь удобный метод в вашем тестовом жгуте JUnit, который ждет в конце тестового метода до фактической отправки почты. Для быстрого теста вы можете поместить Thread.sleep () в конец вашего метода тестирования, чтобы посмотреть, поможет ли это.

2 голосов
/ 27 мая 2009

Является ли нить электронной почты фоновой (демонной) нитью? Возможно, этот поток прерывается из-за того, что ваши тесты заканчиваются до того, как письма отправлены?

Если вы вводите данные для входа непосредственно до и после отправки письма, появляются ли эти записи в журнале?

1 голос
/ 27 мая 2009

У вас включен антивирус? Я потратил пару часов на устранение аналогичной проблемы с тихим антивирусом в фоновом режиме.

0 голосов
/ 16 декабря 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...