加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在Rails中为什么我的邮件正文只在我的测试中空

发布时间:2020-12-16 20:02:10 所属栏目:百科 来源:网络整理
导读:我有一个actionmailer类和相关的开销,它的工作完美.然而,在我的单元测试(rails default minitest)中,电子邮件正文为空.这是为什么? 我的邮件类: class TermsMailer ApplicationMailer default from: "info@domain.com" def notice_email(user,filename) @u
我有一个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

我的测试:

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

这个邮件程序的视图不是空白的,实际上是在电子邮件中发送正确的内容.那么为什么我的测试中的电子邮件正文空白?

解决方法

你可能有两个版本的电子邮件模板(text.erb和html.erb).

如果是这样,您可以使用email.text_part.body.to_s作为纯文本电子邮件,email.html_part.body.to_s用于HTML版本.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读