我正在进行rails集成测试,有人写了当时正在通过的测试,但现在他们正在发出警告
这是我正在处理的代码行
assert_select "a[href=/monster_xml_users/#{user_xml.id}][data-method=delete]", I18n.t('revoke_access')
但现在它正在发出警告
无效的CSS选择器,Assertion未运行
但是,如果我像这样写
assert_select "a", I18n.t('revoke_access')
assert_select "a" do
assert_select "[href=?]","/monster_xml_users/#{user_xml.id}"
assert_select "[data-method=?]", "delete"
end
然后它没有发出警告,测试通过,这是正确的。 但我无法弄清楚为什么以前的断言现在失败了? 现在在Rails 4.2中改变了assert_select语法吗?
答案 0 :(得分:5)
你遵循断言的旧语法。现在rails喜欢在css对象周围添加引号,如下面的
assert_select "a[href='/monster_xml_users/#{user_xml.id}'][data-method='delete']", I18n.t('revoke_access')