我正在做rails集成测试,有人写了当时通过的测试,但现在他们发出警告
这是我正在处理的代码行
assert_select "a[href=/monster_xml_users/#{user_xml.id}][data-method=delete]", I18n.t('revoke_access')
但现在它正在发出警告
无效的 CSS 选择器,断言未运行
但是如果我这样写
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
然后它没有给出警告并且测试通过并且是正确的。但是我无法弄清楚为什么以前的断言现在失败了?assert_select语法现在在 Rails 4.2 中是否发生了变化?
你遵循的是断言的旧语法。现在 rails 更喜欢在 css 对象周围加上引号,如下所示
assert_select "a[href='/monster_xml_users/#{user_xml.id}'][data-method='delete']", I18n.t('revoke_access')