Rspec 3.6,Rails 5错误:`post`请求的参数数量错误(给定2,预期为1)

时间:2017-05-24 22:38:48

标签: ruby-on-rails rspec ruby-on-rails-5 rspec-rails

我刚刚在Rails 5中开始了一个新项目(我的第一个,虽然我在Rails 4.x中有几个项目)并且我在控制器规格方面遇到了麻烦。

describe RequestsController, :type => :controller do

  it "receives new request" do
    post :accept_request, my_params
  end

end

返回错误:

 Failure/Error: post :accept_request, my_params

 ArgumentError:
   wrong number of arguments (given 2, expected 1)

据我所知,Everyday Rails中提到的Rails 5控制器的首选测试策略发生了转变,特别是将控制器测试转换为请求规范,但没有说明这种控制器测试基本方法的变化。

1 个答案:

答案 0 :(得分:21)

看起来Rails 5需要关键字参数而不是散列参数,这是对以前版本的改变。此外,第一个参数是URL而不是操作。尝试

post some_url, params: some_hash