我需要检查我的API方法是否发送了电子邮件。基于SO上的各种线程,我最终得到了类似的东西:
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 v4
Ruby v2
rspec v3.0.0.beta1
请记住,我正在测试的控制器操作工作正常,并在生产/开发时发送该电子邮件。