Home > Test > Como testar envio de e-mail(SMTP) de forma automatizada?

Como testar envio de e-mail(SMTP) de forma automatizada?

Se você já desenvolveu algum aplicativo ou sistema que precisava notificar usuários por e-mail e por sua vez utilizou testes para desenvolver tal funcionalidade, sabe exatamente do que estou falando🙂

Pois bem aqui vai uma dica de como garantir através de testes unitários automáticos que sua funcionalidade de envio de e-mail continua funcionando conforme esperado, ou simplesmente parou de funcionar. O importante aqui é não gerar aqueles desagradáveis e-mails direcionados para contas de testes a cada novo build gerado pelo servidor de integração contínua. Mas não esqueça, você precisa garantir que seu teste foi até o limite, que no caso é conectar no serviço SMTP no servidor de envio. Quem sabe ainda se pudermos verificar se o destinatário recebeu a mensagem e se ela chegou com o conteúdo correto?

Parece besteira né? Mas é possível. Confirá abaixo algumas dicas.

Dummy SMTP

Dependendo do caso você pode preferir por simplesmente possuir um servidor/serviço SMTP que de forma fake retorna sucesso para as conexões abertas de envio de e-mail, de modo a logar as informações enviadas e etc …

Para quem usa Java a biblioteca devnull SMTP é uma ótima alternativa. Já quem usa .Net pode escolher pelas libraries fakeSmtpService e Neptune

Email Testing

Agora se para você não basta simplesmente garantir que o e-mail foi enviado e precisa ter certeza de que a mensagem chegou, validando inclusive o conteúdo enviado e se o remente é o fulano@empresa.com? Parabéns você fez a escolha certa!

Utilizando alguns frameworks, inclusive alguns já bem populares, você consegue em tempo de execução do seu teste unitário criar um servidor SMTP fake e enviar mensagens para ele.

Como se já não bastasse, você pode verificar se suas mensagens chegaram, consultando a quantidade de e-mails recebidos e ainda conferir para cada uma delas as informações referentes ao remetente, destinatários, assunto bem como verificar o texto enviado no corpo do e-mail. Explorando cenários ao extremo, você ainda pode simular casos onde os destinatários não foram encontrados entre outros cenários como servidor SMTP indisponível etc🙂

Java: Dumbster, Wiser

C#: smtp4dev, SMTP Impostor, netDumpster

RoR: Shoulda + Ruby On Rails

Python: Fake SMTP Server

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: