Rspec 3.6, Rails 5 error: wrong number of arguments (given 2, expected 1) for `post` request

Rspec 3.6, Rails 5 error: wrong number of arguments (given 2, expected 1) for `post` request

我刚刚在 Rails 5 开始了一个新项目(我的第一个项目,尽管我在 Rails 4.x 有几个项目)并且在控制器规格方面遇到了问题。

describe RequestsController, :type => :controller do

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

end

Returns 错误:

 Failure/Error: post :accept_request, my_params

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

我知道 Rails 5 的控制器的首选测试策略发生了变化,如 Everyday Rails 所述,具体来说,将控制器测试转移到请求规范中,但没有关于更改的消息这种控制器测试的基本方法。

Rails 5 似乎需要关键字参数而不是散列参数,这与以前的版本有所不同。此外,第一个参数是 URL 而不是动作。尝试

post some_url, params: some_hash