Тест RSpec-запроса объединяет хэши в массиве в параметрах POST JSON

Похож на ошибку в 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

Очень странно!!

Спасибо

Ответ 1

Получил! массив хэшей не поддерживается для данных формы RSpec по умолчанию размещает его как данные формы. Решение:

post '...', {...}.to_json, {'CONTENT_TYPE' => "application/json", 'ACCEPT' => 'application/json'}

Ответ 2

Кроме того, имейте в виду, что у вас есть дополнительная запятая:

data: [
  {
   details: {
    param1: 1
   }**,**
  },
  {
   details: {
    param2: 1
   }
  }
 ]