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

时间:2016-03-15 12:47:23

标签: ruby-on-rails ruby-on-rails-4 integration-testing assertions

我正在进行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语法吗?

1 个答案:

答案 0 :(得分:5)

你遵循断言的旧语法。现在rails喜欢在css对象周围添加引号,如下面的

assert_select "a[href='/monster_xml_users/#{user_xml.id}'][data-method='delete']", I18n.t('revoke_access')