为什么assert_select不接受参数 rails 4.2.



我正在做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')

相关内容

  • 没有找到相关文章

最新更新