代码之家  ›  专栏  ›  技术社区  ›  AlbertMunichMar

Rails项目,在使用capybara进行测试时:ArgumentError:传递给capybara::querys::SelectorQuery的未使用参数:[4]

  •  0
  • AlbertMunichMar  · 技术社区  · 6 年前

    测试表单是否有4个输入无效,我正在复制粘贴文档中的行:

    assert_select "form input", 4
    

    require "application_system_test_case"
    
    class QuestionsTest < ApplicationSystemTestCase
      test "visiting /ask renders the form" do
        visit ask_url
    
        assert_selector "p", text: "Ask your coach anything"
    
        assert_select "form input", 4
      end
    end
    

    完整的错误消息是:

    Error:
    QuestionsTest#test_visiting_/ask_renders_the_form:
    ArgumentError: Unused parameters passed to Capybara::Queries::SelectorQuery : [4]
        test/system/questions_test.rb:9:in `block in <class:QuestionsTest>'
    

    任何帮助都将不胜感激。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Thomas Walpole    6 年前

    这个 assert_select rails-dom-testing 断言选择 https://www.rubydoc.info/gems/capybara/Capybara/Minitest/Assertions#assert_select-instance_method -它处理的是<select>元素,不采用相同的参数,并且不是正确的方法。和水豚一起你要做的就是

    assert_css "form input", count: 4
    

    这和 assert_selector :css, "form input", count: 4 ,也可以写入 assert_selector "form input", count: 4 如果 Capybara.default_selector == :css