2012-11-06 1 views
3

J'essaie d'écrire des spécifications pour mon application visant à traiter et renvoyer les courriels entrants. Il est construit avec Mailman App. Je n'ai trouvé aucun bon exemple sur la façon de le faire. Qu'est-ce que je suis en train d'essayer est de créer un email (avec Mail gem) et le traiter avec Mailman. Mais il n'y a que l'option d'utiliser stding pour tester.Comment tester l'application Mailman?

Alors, y a-t-il des exemples de spécifications écrites pour tester les applications mailman?

Répondre

0

Je pense qu'il est utile d'extraire le plus possible de votre bloc Mailman::Application et de le placer dans votre application quelque part. Ensuite, testez ce traitement.

This Railscast (pro-seulement, désolé) a un exemple de "Une alternative au routage" qui est plutôt bon.

Fondamentalement, au lieu de faire quelque chose comme:

Mailman::Application.run do 
    subject(/Update (\d+)/) do |ticket_id| 
    ... 

vous venez de dire:

Mailman::Application.run do 
    default do 
    MailProcessor.receive_mail(message) 
    end 
end 

Ensuite, la classe MailProcessor pourrait gérer la lecture du message et appeler les bons d'autres fonctions dans votre application (selon le sujet du message, le destinataire, l'expéditeur, etc.) Je voudrais alors RSpec tester la classe MailProcessor pour faire la bonne chose. Ceci est similaire à la façon dont j'approche les tâches de test de rake (mettre la fonctionnalité dans un fichier lib que vous testez, et que la tâche rake appelle simplement le fichier lib.) Ensuite, vous pouvez être certain que la fonctionnalité est testée correctement. Si vous étiez paranoïaque à propos de la tâche de rake, vous pouvez essayer une approche comme: http://robots.thoughtbot.com/post/11957424161/test-rake-tasks-like-a-boss.

Questions connexes