Rails 4.2.6打破电子邮件上的has_link匹配器

时间:2016-08-12 05:41:30

标签: ruby-on-rails rspec capybara

我有一个适用于rails 4.2.5.2

的测试
expect(@mail.first.body.encoded).to have_link('here',
         href: edit_questionaire_url(questionaire))

如果我升级到rails 4.2.6rails 4.2.7.1,则会收到以下错误消息。

Failure/Error:
       expect(@mail.first.body.encoded).to have_link('here',
         href: edit_questionaire_url(questionaire))

       expected to find link "here" with href "http://www.example.com/questionaires/1/edit" but there were no matches. Also found "here", which matched the selector but not all filters.

如果我比较测试中的网址和@ mail.body,它们是相同的,除了引号:

\"http://www.example.com/questionaires/1/edit\"  - body of email
 "http://www.example.com/questionaires/1/edit"  - test error

许多其他类似的测试现在正在破裂。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

最后,我遵循Tom Walpole的建议,并使用capybara-email宝石重构。这有很多优点,包括更容易理解的测试,更强大的测试以及点击电子邮件中的链接的能力。