Ruby on rails 如何在RSpec Rails控制器测试中指定内容类型(和其他头)和请求主体?
我正在尝试测试一个rails操作,它在POST主体中使用原始json。如果我使用Content-Type:application/json头集curl,rails将正确解析参数Ruby on rails 如何在RSpec Rails控制器测试中指定内容类型(和其他头)和请求主体?,ruby-on-rails,json,rspec,Ruby On Rails,Json,Rspec,我正在尝试测试一个rails操作,它在POST主体中使用原始json。如果我使用Content-Type:application/json头集curl,rails将正确解析参数 如何在rspec控制器测试中直接设置请求正文和标题?在rspec 1.3中,可以对“请求”变量进行操作。像这样的东西应该适合你: request.env['CONTENT_TYPE'] = 'application/json' post :method_name 我用 post:method_name,{:format
如何在rspec控制器测试中直接设置请求正文和标题?在rspec 1.3中,可以对“请求”变量进行操作。像这样的东西应该适合你:
request.env['CONTENT_TYPE'] = 'application/json'
post :method_name
我用
post:method_name,{:format=>:json,…other parameter data}结合request.env['RAW_post_data']中的参数设置,这种方法工作得非常好。谢谢。2年后(2012-11-02),这已经不起作用了。是否有人有更新的方法强制请求为
json
?我正在设置:format=>:json,但这并不完全是我的客户端正在做的事情,我还试图使用fdoc生成API文档,其中在每个API中都包含这个额外的参数(我们要求客户端将Accept头设置为application/json
)。有关解决此问题的方法,请参阅。这将设置“Accept”头,而不是“Content Type”。