Menu
Blog (artigos)

Um Contrato de Teste de Email para Jobs CI/CD

Um teste de email automatizado precisa de mais do que um endereço de caixa de entrada. Ele requer um contrato que descreva a qual execução a mensagem pertence, quanto tempo aguardar e quais evidências reter quando o teste falhar.

Forneça a cada execução um registro de correlação

Armazene um identificador da execução de teste, destinatário sintético, horário de disparo e propósito esperado da mensagem. Onde sua aplicação suportar, inclua um marcador de correlação não sensível no conteúdo da mensagem de teste. Faça a correspondência usando mais do que apenas o assunto: uma mensagem antiga com o mesmo assunto pode, de outra forma, fazer uma execução quebrada parecer bem‑sucedida.

Aguarde dentro de um orçamento explícito

create test context
trigger the application action
until the test deadline:
    read messages using the provider's documented API
    accept only a message matching this run
    wait using bounded backoff if no match exists
report matched, timed out, or provider error

Este é pseudocódigo, não um exemplo da API CleanTempMail. Use a documentação da API atual para autenticação, endpoints e limites de requisição. Siga as instruções de nova tentativa e cancele o trabalho restante quando o job terminar.

Afirme o comportamento após o recebimento

Em um ambiente de teste que você controla, confirme que a ação de verificação produz o estado de conta pretendido. Receber apenas uma mensagem não prova que seu link funciona. Mantenha tokens de autenticação e corpos de mensagem fora da saída comum de CI.

Torne as falhas diagnosticáveis

Distinga falha de envio da aplicação, ausência de mensagem correspondente antes do prazo, indisponibilidade do provedor e falha de asserção. Retenha timestamps e identificadores sanitizados, depois remova contas sintéticas e artefatos de email de acordo com a política de retenção de testes da equipe.