看起来像RSpec中的一个错误,但也许我错过了一些东西。
我有一个请求规范,其中我发布了一个包含哈希数组的JSON:
规格/请求/ dummy_request_spec.rb:
post "http://my.server.com/some/route", {
format: :json,
data: [
{
details: {
param1: 1
},
},
{
details: {
param2: 1
}
}
]
}
由于一些奇怪的原因,RSpec将哈希合并为一个元素,然后将它们发送到服务器。 打印出控制器中收到的参数:
data: [
{
details: {
param1: 1,
param2: 2
},
},
]
版本: rspec的-2.13.0 导轨-3.2.10
很奇怪!!
由于
答案 0 :(得分:20)
知道了!表单数据不支持哈希数组 RSpec默认将其作为表单数据发布。解决方案:
post '...', {...}.to_json, {'CONTENT_TYPE' => "application/json", 'ACCEPT' => 'application/json'}
答案 1 :(得分:0)
另外,请注意您有一个额外的逗号:
data: [
{
details: {
param1: 1
}**,**
},
{
details: {
param2: 1
}
}
]
答案 2 :(得分:0)