ruby-on-rails - 为什么 Rails/RSpec 无法在测试中渲染?

标签 ruby-on-rails rspec actionmailer

我有一个邮件程序。以及该邮件程序的 View 。在预览中,一切 看起来不错,链接也正确呈现。

问题在于编写规范(RSpec)。当我尝试测试某些链接是否存在时,测试失败,因为链接中的“&”符号在测试中未正确显示:

我测试的内容(以及邮件预览中显示的内容):

https://nolp.dhl.de/nextt-online-public/set_identcodes.do?lang=de&idc=1234567890

测试失败时我在测试输出中看到的内容:

https://nolp.dhl.de/nextt-online-public/set_identcodes.do?lang=de&idc=1234567890

那么,我该如何理解这一点呢? 为什么邮件在预览和测试中的解释不同? 我该如何测试呢?

最佳答案

测试输出是转义的 html。您也可以将您的期望转换为转义的 html:

expected_link = 'https://nolp.dhl.de/nextt-online-public/set_identcodes.do?lang=de&idc=1234567890'
expect(page).to have_content(ERB::Util.html_escape(expected_link))

关于ruby-on-rails - 为什么 Rails/RSpec 无法在测试中渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42342561/

相关文章:

mysql - rake :db migrate does not return anything

ruby - 如何在 html 输出结果中对 rspec 描述进行分组

ruby-on-rails - 使用 ActionMailer 发送多部分邮件时出现问题

ruby - 测试使用 OptionParser 和 RSpec 的 Rake 任务

javascript - 这个 capybara 试验会剥落吗?

ruby-on-rails - 如何为另一个语言环境提供自定义错误消息? (行动邮件)

html - RoR ActionMailer 问题——无法同时发送纯文本和 HTML 电子邮件。

ruby-on-rails - Carrierwave - "uploading"来自字符串的文件

ruby-on-rails - Ruby Gem 命令行工具

ruby-on-rails - 寻找更快的 ActiveRecord 查询 (Ruby on Rails)