相关疑难解决方法(0)

在Rails中为什么我的邮件主体只在我的测试中空了?

我有一个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)

此邮件的视图不是空白,实际上内容通过电子邮件发送.那么为什么我的测试中的电子邮件正文空白?

email unit-testing ruby-on-rails actionmailer minitest

19
推荐指数
1
解决办法
2394
查看次数