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

时间:2014-04-04 22:59:55

标签: ruby-on-rails ruby rspec

我想测试一个适用于浏览器的控制器,看起来像这样

http://url.dev/jobs/1445.json?project_id=1144&accesskey=MyString

这就是我在控制器spec文件中的内容:

params = {:id=>"1445", :project_id=>1144, :accesskey=>"MyString"}
get :show, params, format: :json

在日志中我看到:

Processing by JobsController#show as HTML
    Parameters: {"id"=>"1440"}

为什么它尝试以HTML格式而不是JSON格式进行处理?为什么它只接收id参数?

另外,如果我这样做:

get :show, id: params[:id], format: :json

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

2 个答案:

答案 0 :(得分:4)

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

这很好用

params = {:id=>"1445", :project_id=>1144, :accesskey=>"MyString", format: :json}
get :show, params

答案 1 :(得分:0)

get只接受 2 个参数," action"和" args"

您的代码:

get :show, params, format: :json

传入 3