如何使用rspec测试HTML属性?

7

我拥有的HTML是由Ruby生成的:

<%= link_to "change", "http://gravatar.com/emails" %>

导致如下结果:
<a href="http://gravatar.com/emails">change</a>

但我希望确保链接在新标签页中打开。
target="blank"

属性

rspec测试看起来像:

it { should have_link('change', href: 'http://gravatar.com/emails', target: '_blank') }

但是当我没有生成目标属性时,测试仍然通过。


https://dev59.com/LGsz5IYBdhLWcg3wv6ju - Sully
我看到了这个问题,但你能详细解释一下它如何更好地回答我的问题吗?对于这个问题建议的解决方法似乎是用jQuery编写的。我不确定如何将其与用Ruby编写的rspec测试实现。 - not_shitashi
你在使用 target="blank" 而不是 target="_blank",需要加上下划线 _ - dft
2个回答

16

对我而言,以下方法适用于capybara 1.1.2:

it { should have_selector("a[href='http://gravatar.com/emails'][target='_blank']") }

0

嘿,抱歉回复晚了。我尝试了你的方法,但是当我在HTML中没有target="blank"时,它仍然不将其视为错误。我在:test组中有gem 'capybara','1.1.2'。我不确定为什么测试会在所有参数都不存在时通过。 - not_shitashi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接