如何使用rspec测试mandrill api

所以我的客户报告说很多电子邮件都是错误的人,我想编写一些function测试来查找并确保他们收到的电子邮件及其在我的规范中说的内容。 我有mandrill_mailer使用mandril api,在它发出之前我想知道消息是什么。

例如。 创建一个新用户帐户 – >创建用户,然后发送一封欢迎电子邮件。 在设计中,它调用RegistrationMailer.new_registration(resource).deliver,然后发送电子邮件给用户:

def new_registration(user) user = User.find_by_email(user["email"]) mandrill_mail template: 'new-registration', subject: 'Welcome to ContentBlvd!', to: { email: user["email"], name: user["full_name"] }, vars: { 'first_name' => user["full_name"], 'unsubscribe' => "#{CONFIG[:protocol]}#{CONFIG[:host]}/unsubscribe?email=#{user.email}" } 

结束

在我的邮件程序中,如何测试此邮件对象?
我尝试了ActionMailer :: Base.deliveries,但它返回nil(因为我使用的是mandrill邮件程序…)所以我试过 – MandrillMailer :: TemplateMailer.message但是没有运气….感谢您的帮助。

此时,MandrillMailer似乎支持强大的离线测试选项集。 特别是,现在可以检查MandrillMailer.deliveries的期望或调试目的。

根据维基,您需要模拟Excon

 # spec/rails_helper.rb config.before(:all) do Excon.defaults[:mock] = true Excon.stub({}, {body: "{\"html\":\"RESULT\"}", status: 200}) end 

您不必使用Mandrill gem来使用Mandrill发送电子邮件。 只需使用Rails默认邮件程序并将配置添加到application.rb或production.rb即可使用您的Mandrill帐户。

http://help.mandrill.com/entries/21738467-Using-Mandrill-s-SMTP-integration-with-Web-Frameworks