2012-04-10 5 views
2

Я пытаюсь проверить многочастную/форму пост с RSpec со следующим кодом:как проверить многослойный пост с RSpec

@req = { :post => @attr } 
    lambda { 
    post :create, :POSTDATA => @req, :format => :json 
    }.should change(Post, :count).by(1) 

, но я получаю следующее сообщение об ошибке:

undefined method `stringify_keys' for "post":String 

POSTDATA это имя многочастной формы.

Каков правильный способ тестирования многопрофильных запросов?

EDIT:

Я понял, что построение запроса, как я сделал в приведенном выше просто создает запрос вложенный в формате JSON. как я могу создать запрос multipost/form?

Я хочу построить многослойный запрос, который выглядит следующим образом:

POST /api/posts.json HTTP/1.1 
Accepts: application/json 
X-API-KEY: 7d867d16a5e25337b6d7857965f812bee73b76ac 
Content-Length: 288 
Content-Type: multipart/form-data; boundary=syoYQUQsGwI2XqShQimFdv2QSe-_GYbjVx40T1kS 
Host: 10.0.2.2:3000 
Connection: Keep-Alive 
User-Agent: Apache-HttpClient/UNAVAILABLE (java 1.4) 

--syoYQUQsGwI2XqShQimFdv2QSe-_GYbjVx40T1kS 
Content-Disposition: form-data; name="POSTDATA" 
Content-Type: application/json; charset=UTF-8 
Content-Transfer-Encoding: 8bit 

{"tags":["dffdff"],"location_id":3,"post":{"content":"test #dffdff"}} 
--syoYQUQsGwI2XqShQimFdv2QSe-_GYbjVx40T1kS-- 
+0

посмотрите на http://stackoverflow.com/questions/7260394/test-a-file-upload-using-rspec-rails – Vik

+0

Я, кажется, не нашел там соответствующего ответа. Я не пытаюсь проверить загрузку файла –

+0

Вик, не могли бы вы указать мне, что я ищу по этой ссылке? –

ответ

0

Я думаю, что вы пытаетесь создать новый объект (метод создания) при передаче только хэша к нему.

Try:

post :create, {:model_name => {hashed_parameter}, :format => :json } 

не делают его постоянным POSTDATA, просто использовать: post_data.

А также предложите использовать Factory Girl для создания объекта и использования в тесте.

+0

Я обновил вопрос на примере многостраничного запроса, который я пытаюсь построить –

Смежные вопросы