【发布时间】:2015-06-09 20:05:28
【问题描述】:
我有一个 actionmailer 类和相关的开销,它运行良好。但是,在我的单元测试(rails 默认 minitest)中,电子邮件正文为空。这是为什么呢?
我的邮件类:
class TermsMailer < ApplicationMailer
default from: "info@domain.com"
def notice_email(user,filename)
@user = user
@file = filename
mail(to: "info@domain.com", subject: 'Data downloaded')
end
end
我的测试:
require 'test_helper'
class TermsMailerTest < ActionMailer::TestCase
test "notice" do
email = TermsMailer.notice_email(users(:me),'file.ext').deliver_now
assert_not ActionMailer::Base.deliveries.empty?
assert_equal ['info@domain.com'], email.from
assert_equal ['info@domain.com'], email.to
assert_equal 'Data downloaded', email.subject
assert_equal 'arbitrary garbage for comparison', email.body.to_s
end
end
这个邮件的视图不是空白的,正确的内容实际上是在电子邮件中发送的。那么为什么在我的测试中邮件正文是空白的呢?
【问题讨论】:
-
使用
email.body.encoded。我会将其发布为答案,但我不记得为什么我必须进行更改。
标签: ruby-on-rails unit-testing email actionmailer minitest