rspec 控制器测试,获取多个参数

Arn*_*Roa 4 ruby rspec ruby-on-rails

我想测试一个在浏览器上工作的控制器,看起来像这样

http://url.dev/jobs/1445.json?project_id=1144&accesskey=MyString
Run Code Online (Sandbox Code Playgroud)

这是我的控制器规范文件中的内容:

params = {:id=>"1445", :project_id=>1144, :accesskey=>"MyString"}
get :show, params, format: :json
Run Code Online (Sandbox Code Playgroud)

在日志上我看到:

Processing by JobsController#show as HTML
    Parameters: {"id"=>"1440"}
Run Code Online (Sandbox Code Playgroud)

为什么它试图作为 HTML 而不是作为 JSON 处理?为什么它只接收 id 参数?

另外,如果我这样做:

get :show, id: params[:id], format: :json
Run Code Online (Sandbox Code Playgroud)

它尝试使用 JSON 进行处理,但它不起作用,因为我需要其他参数。

Arn*_*Roa 7

format: :json部分必须在第二个参数上。

这很好用

params = {:id=>"1445", :project_id=>1144, :accesskey=>"MyString", format: :json}
get :show, params
Run Code Online (Sandbox Code Playgroud)