2017-05-26 57 views
1

RailsGuide Action Mailer Basics,发送电子邮件到多个收件人部分,电子邮件发送到我的应用程序的正确收件人,但我的rspec测试中断。ActionMailer测试电子邮件给多个收件人

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: ["[email protected]"] 
     got: [] 

    (compared using ==) 

当我在IRB Admin.pluck(:email)工程测试,并将其传送电子邮件到正确的收件人,但测试失败。 Proc.new { Admin.pluck(:email) }在IRB中创建一个proc对象,而不是一组电子邮件。我在想实际的邮件程序可以处理这个问题,但是rspec测试不能。

任何想法如何测试在电子邮件中设置了正确的收件人?

回答

0

这有点棘手,但由于邮件程序的操作顺序,您需要在设置to之前发送邮件。

it "renders the headers" do 
    mail.deliver_now 
    expect(mail.to).to eq([user.email]) 
+0

我得到完全相同的错误信息。以前我没有明确地发送邮件,这是我应该做的事情吗? – MERM

相关问题