在关于向多个收件人发送电子邮件的RailsGuide Action Mailer Basics部分之后,电子邮件将从我的应用程序发送给正确的收件人,但我的rspec测试会中断。
class AdminMailer < ApplicationMailer
default to: Proc.new { Admin.pluck(:email) }
我的rspec测试看起来像:
describe "Admin email" do
let(:user) { FactoryGirl.create(:admin) }
let(:contact_form) { FactoryGirl.build(:contact_form) }
let(:mail) { AdminMailer.contact(contact_form) }
it "renders the headers" do
expect(mail.to).to eq([user.email])
我得到的错误信息是:
Failures:
1) AdminMailer Admin email renders the headers
Failure/Error: expect(mail.to).to eq([user.email])
expected: ["joe@example.com"]
got: []
(compared using ==)
当我在irb Admin.pluck(:email)
中进行测试时,它会向正确的收件人发送电子邮件,但测试失败。 Proc.new { Admin.pluck(:email) }
在IRB中创建一个proc对象,而不是一组电子邮件。我认为实际邮件可以解决这个问题但是rspec测试不能解决。
我是否可以测试如何在电子邮件中设置正确的收件人?
答案 0 :(得分:0)
这有点棘手,但由于邮件的操作顺序,您需要在to
设置之前发送邮件。
it "renders the headers" do
mail.deliver_now
expect(mail.to).to eq([user.email])