Функциональное тестирование RESTful POST в Ruby on Rails - PullRequest
7 голосов
/ 03 декабря 2008

Я хотел бы написать функциональный тест веб-службы RESTful, над которой я работаю, в приложении Ruby on Rails.

Тест представляет собой запрос POST, в котором тело запроса представляет собой простой документ XML, а не форму. Любые указатели о том, как это сделать? Проблема, с которой я сталкиваюсь, заключается в том, как указать XML тела в вызове метода post.

Ответы [ 5 ]

8 голосов
/ 04 декабря 2008

У меня сработало следующее:

@request.env['RAW_POST_DATA'] = MY_XML_STRING
post :create   
1 голос
/ 03 декабря 2008

Вы можете сделать это, установив @request.env['RAW_POST_BODY'] для нужного входного потока.

0 голосов
/ 13 ноября 2012

Я нашел следующее решение на http://de.softuses.com/6051

message = '<?xml version="1.0" encoding="UTF-8"?>
<tag>content</tag>'

@xml_request_headers ||= {}
@xml_request_headers['HTTP_ACCEPT'] = @xml_request_headers['CONTENT_TYPE'] = 'application/xml'

post '/controller/action.xml', message, @xml_request_headers

Я фактически определил @xml_request_headers в своем методе setup и могу использовать его во всех моих тестах в этом файле. Возможно, было бы неплохо установить значение test_helper.rb, если это требуется для большего количества файлов.

0 голосов
/ 12 декабря 2008

Я только что написал тестовый скрипт, использующий Net: HTTP для тестирования службы REST.

0 голосов
/ 03 декабря 2008

Проверьте shoulda макрос "should_be_restful". Этот макрос скоро будет устарел от musta и доступен только в ин willa драгоценном камне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...