RSpec Argument Error无效键:method,:action

时间:2016-01-11 05:46:11

标签: ruby-on-rails rspec

是否有人能够阐明为什么会出现这种错误:

 Failure/Error:
   expect(render).to have_selector('form', method: 'post', action: 'index') do |form|
     expect(form).to have_selector('input', type: 'submit')

 ArgumentError:
   invalid keys :method, :action, should be one of :count, :minimum, :maximum, :between, :text, :visible, :exact, :match, :wait

是在此代码上生成的:

require 'rails_helper'

describe "messages/new.html.erb" do
  it "renders a form to create a message" do
    assign(:message, mock_model('Message'))
    render
    expect(render).to have_selector('form',
      method: 'post',
      action: 'index'
    ) do |form|
      expect(form).to have_selector('input', type: 'submit')
    end
  end
end

非常感谢。

1 个答案:

答案 0 :(得分:3)

您对have_selector的来电不对:您无法以这种方式检查元素是否存在属性。但是,您可以在选择器中包含它,例如

have_selector("form[method=post][action=index]")

如果渲染的html实际上具有表单的完整路径或url,那么您需要使用路由助手来生成该URL并在选择器中使用它。