【发布时间】:2012-11-06 20:47:08
【问题描述】:
我正在尝试为我的应用程序编写一些规范,以处理和重新发送传入的电子邮件。它是用 Mailman 应用程序构建的。我没有找到任何关于如何做到这一点的好例子。我实际尝试的是创建电子邮件(使用 Mail gem)并使用 Mailman 处理它。但是只能选择使用 stding 进行测试。
那么,有没有为测试邮递员应用而编写的规范示例?
【问题讨论】:
标签: ruby ruby-on-rails-3 mailman-gem
我正在尝试为我的应用程序编写一些规范,以处理和重新发送传入的电子邮件。它是用 Mailman 应用程序构建的。我没有找到任何关于如何做到这一点的好例子。我实际尝试的是创建电子邮件(使用 Mail gem)并使用 Mailman 处理它。但是只能选择使用 stding 进行测试。
那么,有没有为测试邮递员应用而编写的规范示例?
【问题讨论】:
标签: ruby ruby-on-rails-3 mailman-gem
我认为从您的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。
【讨论】: