Je voudrais écrire des tests d'intégration qui vérifient si l'utilisateur reçoit des e-mails de confirmation d'inscription.
Idéalement, à cette fin, je voudrais:
Existe-t-il des comptes de messagerie jetables qui fournissent une API simple? Je n'ai pas pu en trouver, mais les requêtes existantes sont assez faciles à analyser/faire des demandes (par exemple http://10minutemail.com/ ).
Est-ce que cela semble être une bonne idée? L'alternative est d'utiliser un compte gmail et d'utiliser des balises à cet effet. Cependant, traiter les msgs dans le dossier spam, d'autres dossiers, etc. semble un peu plus compliqué.
http://mailinator.com prend en charge POP3.
Connectez-vous au serveur via POP3 avec n'importe quel nom d'utilisateur et vérifiez l'e-mail.
vous pouvez tester avec votre e-mail à partir de Gmail, ajoutez simplement +something
à votre adresse e-mail:
vous pouvez avoir un compte de test qui livrera à votre adresse Gmail normale:
Je sais que cette question est relativement ancienne, mais cela correspond assez bien à vos objectifs:
Je l'utilise quotidiennement pour tester des e-mails ou pour m'inscrire à des services que je n'utiliserai qu'une seule fois et qui nécessitent une vérification par e-mail.
Je le recommande fortement!
Vous pouvez utiliser des services spéciaux pour les ingénieurs QA/QC avec API:
Plus vous pouvez lire dans l'article http://railsware.com/blog/2012/06/18/remove-qa-headache- while-testing-email-delivery/
Si vous exécutez sur une machine Linux, un service de messagerie électronique sera déjà en cours d'exécution (username@localhost
... par exemple root@localhost
), ce qui est un peu parfait pour tester les scripts de messagerie.
Je ne sais pas pourquoi vous vous donneriez la peine d'automatiser cela alors qu'il serait préférable d'utiliser plutôt l'injection de dépendances et de créer une classe de simulation de mailing afin que vous puissiez faire correctement les tests d'intégration - au lieu de la dernière étape de transmission de l'e-mail il écrit simplement le contenu dans un fichier, une base de données, ou reste simplement en vie dans l'objet factice assez longtemps pour pouvoir être testé avant d'être récupéré.