我正在尝试为我的应用程序编写一些规范,以处理和重新发送传入的电子邮件。它是用 Mailman 应用程序构建的。我没有找到任何关于如何做到这一点的好例子。我真正尝试的是创建电子邮件(使用 Mail gem)并使用 Mailman 处理它。但是只能选择使用 stding 进行测试。
那么,是否有任何为测试邮递员应用程序而编写的规范示例?
我正在尝试为我的应用程序编写一些规范,以处理和重新发送传入的电子邮件。它是用 Mailman 应用程序构建的。我没有找到任何关于如何做到这一点的好例子。我真正尝试的是创建电子邮件(使用 Mail gem)并使用 Mailman 处理它。但是只能选择使用 stding 进行测试。
那么,是否有任何为测试邮递员应用程序而编写的规范示例?
我认为尽可能多地从您的Mailman::Application
块中提取并将其放入您的应用程序的某个地方是有用的。然后测试该处理。
这个 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 。