Comment test d'envoi de courrier à l'aide de Rspec?
Quelles sont les meilleures pratiques et les outils de test par e-mail-envoi à l'aide de rspec avec des Rails?
Par exemple, comment puis-je tester qu'un courriel a été envoyé ou que dois-je tester pour avoir un test efficace et acceptable de la couverture.
Si vous les gars ont besoin d'un exemple, comment je vais tester cela:
class UserMailer < ActionMailer::Base
def jobdesc_has_been_reviewed(user, title)
@body[:title] = title
@body[:jobdesc] = jobdesc
@body[:url] = "http://" + user.account.subdomain + "." + Constants::SITE_URL + "/jobdescs/#{jobdesc.id}"
end
end
Vous devez vous connecter pour publier un commentaire.
e-mail-spec ressemble à une bonne bibliothèque
http://github.com/bmabey/email-spec
Que voulez-vous tester exactement?
Vous voulez tester que le mail est en effet vraiment envoyé?
Je ne le recommande pas car il fera de votre test plus lent, et il dépend de la machine que vous utilisez pour exécuter vos tests (connexion réseau, serveur smtp).
Ce que je fais habituellement est de s'assurer que le contrôleur de l'action /modèle /tâche rake qui envoient des e-mails s'exécute correctement (c'est à dire sans erreur, je stub de la finale de l'envoyer à l'appel).
J'ai aussi assurez-vous que le corps, le titre et les destinataires du mail sont correctes.
Edit:
Ne sont pas directement liés à des tests, mais je viens de tomber sur ce l'article.
J'aime bien son point de vue à l'aide du modèle d'envoyer des e-mails.
Alors pour expliquer un peu plus en détails:
Je voudrais utiliser le contrôleur pour définir les variables de vue comme
@corps, @titre, @destinataire.
Je voudrais donc tester que, compte tenu de corriger les paramètres du modèle d'e-mail (ce qui est un point de vue) est correctement rendu.
C'est là que des erreurs peuvent se produire à partir de mon point de vue.
Je mettrai à jour ce post avec exemple, quand je suis de retour à la maison plus tard aujourd'hui.