3

我正在使用 rails4 跟踪敏捷 Web 开发, 在 rake 测试中我遇到了这个失败。我不知道出了什么问题...我知道这会导致问题 我的order_notifier_test,我在 app/views/order_notifier 下
assert_match /<td>1&times;<\/td>\s*<td>Programming Ruby 1.9<\/td>/, mail.body.encoded
shipped.text.erb

失败
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 下)

4

2 回答 2

3

失败的断言

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

(就像之前收到的订单通知器测试中的那个一样。)

于 2013-07-02T13:09:13.840 回答
0

我加了

.gsub("\r\n", "")

断言字符串:

assert_match /<td>1&times;<\/td>\s*<td>Programming Ruby 1\.9<\/td>/, mail.body.encoded.gsub("\r\n", "")
于 2019-01-09T07:34:18.833 回答