ruby-on-rails - 如何使用 GET 请求为 Rspec 请求规范设置 request.body

标签 ruby-on-rails ruby rspec rspec-rails

  • rails 5.0.0.1
  • rspec 3.5

我继承了一个代码库。在考虑重构之前,我正忙于编写集成测试以限制应用程序的功能。

我在 Controller 关注 before_action 中有以下几行。它似乎读取了请求正文。此处的 json 值用于提取用于对请求进行身份验证的标识符。

request.body.rewind
body = request.body.read
json = JSON.parse(body) unless body.empty?

我需要测试身份验证是否正确进行。 如何为 GET 请求规范设置 request.body

最佳答案

我认为你应该能够通过请求 env RAW_POST_DATA

get root_path, {}, 'RAW_POST_DATA' => 'raw json string'
request.raw_post # "raw json string"

参见: How to send raw post data in a Rails functional test?

关于ruby-on-rails - 如何使用 GET 请求为 Rspec 请求规范设置 request.body,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40747706/

相关文章:

ruby-on-rails - capybara 不等待ajax完成

ruby - 在循环期间将信息输入文本区域或从下拉列表中的文本值中选择? ( ruby /瓦提尔)

ruby-on-rails - rspec - 检查数组是否包含具有指定 ID 的元素

ruby-on-rails - 在 Rails 中添加 created_at DESC 功能

css - 使用 Bootstrap 在 Index 操作中呈现 Div

ruby-on-rails - 无法启动 ruby​​ 服务器

ruby - 如何将任何 String 值转换为其正确的表示形式?

ruby - 如何为具有包含 ruby​​ 关键字的字段的表编写 factorygirl?

ruby-on-rails - 无法使用 Rubber 连接到 ec2

ruby-on-rails - Heroku Paperclip S3 错误 => AWS::S3::Errors::SignatureDoesNotMatch