我应该如何测试Mailman应用程序

时间:2012-11-06 20:47:08

标签: ruby ruby-on-rails-3 mailman-gem

我正在尝试为我的应用程序编写一些旨在处理和重新发送传入电子邮件的规范。它是用Mailman App构建的。我没有找到关于如何做到这一点的任何好例子。我实际上尝试的是创建电子邮件(使用Mail gem)并使用Mailman处理它。但是只有使用stding进行测试的选项。

那么,是否有任何用于测试邮件应用程序的规范示例?

1 个答案:

答案 0 :(得分:0)

我认为从Mailman::Application块中尽可能多地提取并将其放入您的应用程序中是很有用的。然后测试那个处理。

This Railscast(仅限亲,对不起)有一个“路由替代方案”的例子非常好。

基本上不是做以下事情:

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

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

然后MailProcessor类将处理阅读消息并在您的应用中调用正确的其他功能(取决于消息的主题,收件人,发件人等)然后我会RSpec测试MailProcessor做正确的事。

这类似于我测试rake任务的方法(将功能放在你测试的lib文件中,并让rake任务只调用lib文件。)然后你可以相当确定功能是否正在测试。如果你对rake任务很偏执,你可以尝试一种方法:http://robots.thoughtbot.com/post/11957424161/test-rake-tasks-like-a-boss