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

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

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

那么,是否有任何编写规范的示例来测试 postman 应用程序?

最佳答案

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

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 .

关于ruby - 我应该如何测试 Mailman 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13259142/

相关文章:

ruby-on-rails - Mailman多次保存邮件

ruby - 部署.rb : undefined local variable or method `home` for main:Object

ruby-on-rails - ruby rails : Keep user input after submitting search form

ruby - 检查 URL 是否存在于 Ruby 中

ruby-on-rails-3 - 如何使用mailman处理传入的邮件并将其更新到数据库中

ruby-on-rails - 在开发环境中通过 Octopus gem 复制 Rails Postgresql

css - Div 高亮不会转换为 div 的新位置

mysql - 在 Rails ActiveRecord 中访问和设置对象

ruby-on-rails - Rails 3.1 SASS Assets 助手不包括 RAILS_RELATIVE_URL_ROOT/relative_url_root