2013-07-03 2 views
3

Возможно, я не использую правильные ключевые слова для поиска, но я не могу найти что-либо по электронной почте в рамках интеграционных тестов. Слово «почта» даже не появляется один раз в docs on Testing.Как вы обрабатываете (или блокируете) отправку писем во время тестирования интеграции в приложении Spring?

Я хотел бы знать, можно ли даже проверить, пытается ли приложение Spring присылать электронное письмо, и что еще более важно, как его смоделировать или заблокировать от фактического подключения к SMTP-серверу каждый раз, когда я запустить мои интеграционные тесты?

Это не было бы много так вопрос без кода, так вот что я получил:

@Test 
public void testResendConfirmationEmail() throws Exception { 
    mockMvc.perform(get("/resend").principal(getSpoofedPrincipal())) 
      .andExpect(status().isFound()) 
      .andExpect(redirectedUrl("/notactive")); 
} 

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

Так как я:

  1. Блокировать отправку любых писем?
  2. Проверьте, что он отправил правильное электронное письмо?

Любые советы приветствуются!

ответ

2

Возможно, вы можете настроить поддельный почтовый сервер, используя Dumpster. Затем вы можете отправить его, подтвердите, что он прибывает без фактического запроса получателя.

+0

Прохладное предложение, я рассмотрю его! – Liam

Смежные вопросы