Ruby on rails 如何在控制器规范内测试mailer

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

我需要检查我的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) 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


请记住,我上面测试的控制器操作工作正常,并在生产/开发时发送该电子邮件。

您的测试环境是否设置为config.action\u mailer.delivery\u method=:test?是的,它就是这样设置的。