Cam*_*rzt 19 email unit-testing ruby-on-rails actionmailer minitest
我有一个actionmailer类和相关的开销,它完美地工作.但是,在我的单元测试(rails default 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
Run Code Online (Sandbox Code Playgroud)
我的测试:
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
Run Code Online (Sandbox Code Playgroud)
此邮件的视图不是空白,实际上内容通过电子邮件发送.那么为什么我的测试中的电子邮件正文空白?
NDa*_*Dan 56
您可能有两个版本的电子邮件模板(text.erb和html.erb).
如果是这样,您可以使用email.text_part.body.to_s纯文本电子邮件和email.html_part.body.to_sHTML版本.
| 归档时间: |
|
| 查看次数: |
2394 次 |
| 最近记录: |