小编Sie*_*vin的帖子

ActionMailer:测试失败但在开发环境中工作

在我的Rails 3.1的项目有一个奇怪的行为的ActionMailer的的ActionMailer :: Base.deliveries是在试空,而我实际上可以通过运行轨道控制台代码接收电子邮件.任何人都可以指出它是什么错误?

# spec/mailers/user_mailer_spec.rb
require "spec_helper"

describe UserMailer do
  describe ".reminding_email" do
    subject { UserMailer.reminding_email(user).deliver }
    let(:user) { create :confirmed_user_with_mass_tasks }
    it "should be delivered" do
      ActionMailer::Base.deliveries.should_not be_empty
    end
    its(:to) { should == [user.email] }
    its(:subject) { should == "Task Reminding" }
  end
end

# app/mailers/user_mailer.rb
class UserMailer < ActionMailer::Base
  layout "email"
  default from: Rails.env.production? ? "<production>@gmail.com" : "<test>@gmail.com"
  def reminding_email(user)
    @tasks = user.tasks.reminding_required
    @current = Time.current
    mail(to: user.email, subject: "Task Reminding")
  end
end
Run Code Online (Sandbox Code Playgroud)

失败:

1)应该传递UserMailer.reminding_email失败/错误:ActionMailer :: Base.deliveries.should_not …

rspec ruby-on-rails actionmailer

3
推荐指数
1
解决办法
2796
查看次数

标签 统计

actionmailer ×1

rspec ×1

ruby-on-rails ×1