Rake测试失败assert_match

时间:2013-07-02 08:41:09

标签: ruby-on-rails ruby

我关注Agile Web Developement with rails4 在rake测试中我得到了这个失败。 我无法弄清楚出了什么问题...我知道这会导致问题 assert_match /<td>1&times;<\/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&times;<\/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下)

2 个答案:

答案 0 :(得分:3)

failed assertion

assert_match /<td>1&times;<\/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&times;<\/td>\s*<td>Programming Ruby 1\.9<\/td>/, mail.body.encoded.gsub("\r\n", "")