使用内联附件测试HTML正文Rails

时间:2016-03-12 19:17:41

标签: ruby-on-rails email actionmailer minitest

我按照文档(http://guides.rubyonrails.org/testing.html#testing-your-mailers)取得了一些成功。我正在使用夹具测试电子邮件的正文(如文档所述)。我的电子邮件有内嵌附件(图片)。

我的测试(见下文)大部分都有用,虽然我遇到的问题是它将输出的HTML与我在灯具中的HTML进行比较。由于附件是编码的,因此每个生成的电子邮件都有不同的图像源(由于HTML不同(即),测试无法通过测试:)

-  Made with <img src=\"cid:56e45e159c85_13fa6229fd9889725f@775f1d813fe9.mail\" width=\"10\" height=\"10\" > in Toronto, Canada
+  Made with <img src=\"cid:56e466f93993e_13f99bbda39989734@084c0dd0f919.mail\" width=\"10\" height=\"10\" /> in Toronto, Canada

有没有办法成功测试HTML正文?有没有办法让编码的字符串每次都相同?

提前致谢!

require 'test_helper'

class LeadMailerTest < ActionMailer::TestCase
  test "confirmation_email" do
    email = LeadMailer.confirmation_email(leads(:lead), 'Varsity Heights').deliver_now
    assert_not ActionMailer::Base.deliveries.empty?
    assert_equal ['donotreply@yuhu.io'], email.from
    assert_equal ['email2@email.com'], email.to
    assert_equal 'Your request for a showing at Varsity Heights is confirmed.', email.subject
    assert_equal read_fixture('confirmation_email').join, email.html_part.body.to_s
  end
end

1 个答案:

答案 0 :(得分:0)

对于任何磕磕绊绊的人,我最终使用assert_select_email do,然后单独断言每个元素(只是图像的存在,不包括链接。