【发布时间】:2017-10-27 14:12:34
【问题描述】:
按照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 测试不能。
有什么想法可以测试电子邮件中是否设置了正确的收件人?
【问题讨论】:
标签: ruby-on-rails email ruby-on-rails-4 rspec actionmailer