如何在Rails RSpec测试中确认缺少HTML属性?
我可以验证input
标记是否具有value
属性,并且它是一个空字符串,如下所示:
response.should have_tag("input[name=?][value=?]", "user[password]", "")
response.should have_tag("input[name=?][value=?]", "user[password_confirmation]", "")
但我要做的是验证我的输入字段根本没有value
属性(即空白字段)。
答案 0 :(得分:3)
想出来:
response.should_not have_tag("input[name=?][value]", "user[password]")
response.should_not have_tag("input[name=?][value]", "user[password_confirmation]")
只使用不带=的value
属性?部分。因此,如果input
标记具有value
属性,则无论其包含什么,测试都将失败。
答案 1 :(得分:1)
各个网站上有很多帖子指出,have_tag会返回一个错误,即没有像has_tag这样的方法。
我的解决方法是使用have_selector:
response.should have_selector("input#user_password", :content => "")
其中user_password是所需输入标记(密码字段)的id属性,我通过查看我的页面的源(在这种情况下是一个注册页面)找到了,并且井号描绘了我正在使用的输入标记的id字段。
我通过将内容值更改为“x”并且我的测试失败来验证这似乎有效。
使用 rspec-rails 2.5.0 rspec 2.5.0
答案 2 :(得分:0)
response.should_not have_tag("....")