我刚刚在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控制器的首选测试策略发生了转变,特别是将控制器测试转换为请求规范,但没有说明这种控制器测试基本方法的变化。
答案 0 :(得分:21)
看起来Rails 5需要关键字参数而不是散列参数,这是对以前版本的改变。此外,第一个参数是URL而不是操作。尝试
post some_url, params: some_hash