Ruby on rails 如何在控制器规范内测试mailer
我需要检查我的API方法是否发送电子邮件。基于不同的线索,我最终得出如下结论:Ruby on rails 如何在控制器规范内测试mailer,ruby-on-rails,rspec,ruby-on-rails-4,Ruby On Rails,Rspec,Ruby On Rails 4,我需要检查我的API方法是否发送电子邮件。基于不同的线索,我最终得出如下结论: require 'spec_helper' describe Api::V1::IntervieweesController do before(:each) do @project = FactoryGirl.create(:project) end describe "POST /api/v1/interviewees/remind_code" do before(:each) d
require 'spec_helper'
describe Api::V1::IntervieweesController do
before(:each) do
@project = FactoryGirl.create(:project)
end
describe "POST /api/v1/interviewees/remind_code" do
before(:each) do
@interviewee = FactoryGirl.create(:interviewee, project: @project)
end
it "sends email with code" do
post :remind_code, interviewee: { email: @interviewee.email }
ActionMailer::Base.deliveries.last.to.should == [@interviewee.email]
end
end
end
问题是,ActionMailer::Base.deliveries
始终是nil
,即使该方法发送该电子邮件(当我在浏览器中以“正常”方式运行该方法时,rspec测试之外)。更有趣的是,它在模型规格中运行良好。你知道我可能做错了什么吗
Rails v4Ruby v2
rspec v3.0.0.beta1
请记住,我上面测试的控制器操作工作正常,并在生产/开发时发送该电子邮件。您的测试环境是否设置为config.action\u mailer.delivery\u method=:test?是的,它就是这样设置的。