RSpec请求测试在POST JSON参数中合并数组中的哈希值

Ada*_*ein 10 json rspec ruby-on-rails request params

看起来像RSpec中的一个错误,但也许我错过了一些东西.

我有一个请求规范,我发布了一个包含哈希数组的JSON:

规格/请求/ dummy_request_spec.rb:

post "http://my.server.com/some/route", {
  format: :json,
  data: [
    {
      details: {
        param1: 1
      },
    },
    {
      details: {
        param2: 1
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

出于某种奇怪的原因,RSpec将哈希合并为一个元素,然后将它们发送到服务器.打印出控制器中收到的参数:

data: [
  {
    details: {
      param1: 1,
      param2: 2
    },
  },
]
Run Code Online (Sandbox Code Playgroud)

版本:rspec-2.13.0 rails-3.2.10

很奇怪!!

谢谢

Ada*_*ein 20

得到它了!表单数据不支持哈希数组
RSpec默认将其作为表单数据发布.解:

post '...', {...}.to_json, {'CONTENT_TYPE' => "application/json", 'ACCEPT' => 'application/json'}
Run Code Online (Sandbox Code Playgroud)