我关注Agile Web Developement with rails4
在rake测试中我得到了这个失败。
我无法弄清楚出了什么问题...我知道这会导致问题 assert_match /<td>1×<\/td>\s*<td>Programming Ruby 1.9<\/td>/,
mail.body.encoded
我的order_notifier_test,我的shipped.text.erb
位于app / views / order_notifier
失败
OrderNotifierTest#test_shipped [Work/depot/test/mailers/order_notifier_test.rb:17]:
Expected /<td>1×<\/td>\s*<td>Programming Ruby 1.9<\/td>/ to match "<h3>Pragmatic Order Shipped</h3>\r\n<p>\r\n This is just to let you know that we've shipped your recent order:\r\n</p>\r\n \r\n<table>\r\n <tr><th colspan=\"2\">Qty</th><th>Description</th></tr>\r\n 1 x Programming Ruby 1.9\r\n\r\n</table>\r\n".
随意浏览存储库以获取更多信息(我的系统也在README.md下)
答案 0 :(得分:3)
assert_match /<td>1×<\/td>\s*<td>Programming Ruby 1.9<\/td>/, mail.body.encoded
期望以HTML格式呈现视图(line_items/_line_item.html.erb
)。
但是,由于邮件程序视图采用文本格式(order_notifier/shipped.text.erb
),因此其中的部分也以文本格式呈现(line_items/_line_item.text.erb
)。
因此,您可能希望将断言更改为:
assert_match /1 x Programming Ruby 1.9/, mail.body.encoded
(就像之前收到的通知单通知测试一样。)
答案 1 :(得分:0)
我添加了
.gsub("\r\n", "")
声明字符串:
assert_match /<td>1×<\/td>\s*<td>Programming Ruby 1\.9<\/td>/, mail.body.encoded.gsub("\r\n", "")