如何在RSpec Rails Controller测试中指定Content-Type(和其他标题)和请求正文?

Chr*_*Foy 9 json rspec ruby-on-rails

我正在尝试测试在POST正文中使用原始json的rails操作.如果我使用Content-Type:application/json标头集卷曲,rails会正确解析params.

如何在rspec控制器测试中直接设置请求主体和头文件?

Mat*_*ley 9

在RSpec 1.3中,您可以操作"请求"变量.这样的事情对你有用:

request.env['CONTENT_TYPE'] = 'application/json'
post :method_name
Run Code Online (Sandbox Code Playgroud)

  • 2年后(2012年11月 - 02年),这不再起作用了.有没有人有更新的方式强制请求为`json`?我正在设置:format =>:json,但这不是我的客户正在做的事情,我也尝试使用fdoc生成API文档,其中包含每个API中的额外参数(我们要求客户端设置Accept标头)到`application/json`). (2认同)