Test unitaire d’envoi d’email avec Dumbster et nDumbster.

Pour tester un programme envoyant des emails, on peut utiliser un mock object du composant d’envoi de message, mais on n’est pas certain que les paramètres sont corrects, et il faut un mock object par composant d’envoi de message.

Une autre solution est d’utiliser un serveur vrai SMTP et d’envoyer tous les tests vers une adresse mail dédié. Mais la vérification ne peut être manuelle.

Aucune de ces solutions n’était vraiment satisfaisants quand un contexte d’automatisation des tests, notamment en développement piloté par les tests.

Mais il existe une solution bien plus élégante. Dumbster est une librairie Java qui implémente un vrai serveur SMTP. Par contre les mails reçus sont stockés dans une listes au lieu d’être relayés. Il suffit de l’utiliser dans une librairie de test JUnit pour automatiser complètement le test d’envoi de message. Une bonne nouvelle pour monsieur toto@mail.com qui va arrêter de recevoir des messages bidons (histoire véridique).

Pour les développeurs .Net comme moi, il existe un portage de Dumbster en C#, NDumbster. La version actuellement en ligne n’est pas très fonctionnelle, mais cela devrait changer, notamment grâce au patch que j’ai soumis. Avec cette version, j’ai pu tester un système de gestion de mailling list en quelques heures au lieu de quelques jours (avec en plus des tests automatiques complets).

Ne faites plus d’application envoyant des mails sans ces librairies !

Laisser un commentaire


Propulsé par WordPress