Rspec 不显示邮件正文中的内容
Rspec doesnt show the content in mail body
在测试我的邮件内容时,在实际邮件中它显示邮件内容,但在rspec中测试我的邮件时它不显示内容,因为它只显示电子邮件图像附件,以前没有在邮件中发送附件,它在rspec中显示电子邮件正文,但现在附加图像附件后在rspec中不显示内容,那么如何获取内容
我的rspec 结果
#<Mail::Body:0x00555c3bbcef70
@boundary="--==_mimepart_61bb2dce1d6b1_f92aae1ba4534536817",
+ @charset="US-ASCII",
+ @encoding="7bit",
+ @epilogue=nil,
+ @part_sort_order=["text/plain", "text/enriched", "text/html"],
+ @parts=
+ [#<Mail::Part:46927317154560, Multipart: false, Headers: <Content-Type: text/html>>,
+ #<Mail::Part:46927293531360, Multipart: false, Headers: <Content-Type: image/jpeg; filename="image.jpg">, <Content-Transfer-Encoding: binary>, <Content-Disposition: attachment; filename="image.jpg">, <Content-ID: <61bb2dc84fb25_f92486@c430e0bef0fd.mail>>>,
+ #<Mail::Part:46927312188120, Multipart: false, Headers: <Content-Type: image/png; filename="user2_app.png">, <Content-Transfer-Encoding: binary>, <Content-Disposition: attachment; filename="user2_app.png">, <Content-ID: <61bb2dca13d5f_565ac@c430e0bef0fd.mail>>>,
+ #<Mail::Part:469273513434, Multipart: false, Headers: <Content-Type: image/png; filename="user2_app.png">, <Content-Transfer-Encoding: binary>, <Content-Disposition: attachment; filename="user2.png">, <Content-ID: <61bb2dcc44fa_34346bd@c430e0bef0fd.mail>>>,
+ ,
+ @preamble=nil,
@raw_source="">
我的rspec方法
mail = Mailer.send_mail_to_user(user_name,address)
expect(mail.body).to include("Welcome user")
但在我发送的实际邮件中包含文本欢迎用户
但在 rspec 中没有显示?
如何测试,请帮助我
expect(mail.body).to include("Welcome user")
只有在您发送一封只有文本的简单电子邮件时才会真正起作用。当您发送多部分电子邮件时,您需要匹配电子邮件的特定部分:
let(:html_body) do
mail.body.parts.find { |p| p.content_type.match 'text/html' }.body.raw_source
end
it "contains hello world" do
expect(html_body).to include("Welcome user")
end
在测试我的邮件内容时,在实际邮件中它显示邮件内容,但在rspec中测试我的邮件时它不显示内容,因为它只显示电子邮件图像附件,以前没有在邮件中发送附件,它在rspec中显示电子邮件正文,但现在附加图像附件后在rspec中不显示内容,那么如何获取内容
我的rspec 结果
#<Mail::Body:0x00555c3bbcef70
@boundary="--==_mimepart_61bb2dce1d6b1_f92aae1ba4534536817",
+ @charset="US-ASCII",
+ @encoding="7bit",
+ @epilogue=nil,
+ @part_sort_order=["text/plain", "text/enriched", "text/html"],
+ @parts=
+ [#<Mail::Part:46927317154560, Multipart: false, Headers: <Content-Type: text/html>>,
+ #<Mail::Part:46927293531360, Multipart: false, Headers: <Content-Type: image/jpeg; filename="image.jpg">, <Content-Transfer-Encoding: binary>, <Content-Disposition: attachment; filename="image.jpg">, <Content-ID: <61bb2dc84fb25_f92486@c430e0bef0fd.mail>>>,
+ #<Mail::Part:46927312188120, Multipart: false, Headers: <Content-Type: image/png; filename="user2_app.png">, <Content-Transfer-Encoding: binary>, <Content-Disposition: attachment; filename="user2_app.png">, <Content-ID: <61bb2dca13d5f_565ac@c430e0bef0fd.mail>>>,
+ #<Mail::Part:469273513434, Multipart: false, Headers: <Content-Type: image/png; filename="user2_app.png">, <Content-Transfer-Encoding: binary>, <Content-Disposition: attachment; filename="user2.png">, <Content-ID: <61bb2dcc44fa_34346bd@c430e0bef0fd.mail>>>,
+ ,
+ @preamble=nil,
@raw_source="">
我的rspec方法
mail = Mailer.send_mail_to_user(user_name,address)
expect(mail.body).to include("Welcome user")
但在我发送的实际邮件中包含文本欢迎用户
但在 rspec 中没有显示?
如何测试,请帮助我
expect(mail.body).to include("Welcome user")
只有在您发送一封只有文本的简单电子邮件时才会真正起作用。当您发送多部分电子邮件时,您需要匹配电子邮件的特定部分:
let(:html_body) do
mail.body.parts.find { |p| p.content_type.match 'text/html' }.body.raw_source
end
it "contains hello world" do
expect(html_body).to include("Welcome user")
end