24
在我的ActionMailer :: TestCase的測試,我期待:Rails - 如何測試ActionMailer發送的特定附件?
@expected.to = BuyadsproMailer.group_to(campaign.agency.users)
@expected.subject = "You submitted #{offer_log.total} worth of offers for #{offer_log.campaign.name} "
@expected.from = "BuyAds Pro <[email protected]>"
@expected.body = read_fixture('deliver_to_agency')
@expected.content_type = "multipart/mixed;\r\n boundary=\"something\""
@expected.attachments["#{offer_log.aws_key}.pdf"] = {
:mime_type => 'application/pdf',
:content => fake_pdf.body
}
和存根我的郵件得到fake_pdf,而不是一個真正的PDF通常從S3獲取的,這樣我敢肯定,PDF文件匹配的機構。
不過,我得到這個長的錯誤告訴我,一個電子郵件,但卻得到了一個稍微不同的電子郵件:
<...Mime-Version: 1.0\r\nContent-Type: multipart/mixed\r\nContent-Transfer-Encoding: 7bit...> expected but was
<...Mime-Version: 1.0\r\nContent-Type: multipart/mixed;\r\n boundary=\"--==_mimepart_50f06fa9c06e1_118dd3fd552035ae03352b\";\r\n charset=UTF-8\r\nContent-Transfer-Encoding: 7bit...>
我不匹配生成的電子郵件的字符集或部分邊界。
如何定義或存根預期電子郵件的這方面?
有沒有辦法比較md5散列? – mehulkar
很好的答案。雖然檢查結果是一種'Mail :: Part'似乎是不必要的,如果在未來版本的Rails中類名不同,可能會使測試不必要地變得脆弱。如果對象不是正確的類型,那麼它響應'content_type'和'filename'方法的可能性就非常低。 –
如果我使用rails minitest框架,該怎麼辦? –