我按照文档(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
答案 0 :(得分:0)
对于任何磕磕绊绊的人,我最终使用assert_select_email do,然后单独断言每个元素(只是图像的存在,不包括链接。