with restful rails crear ruby-on-rails ruby unit-testing rest post

ruby-on-rails - restful - rest rails



Pruebas funcionales de un POST RESTful en Ruby on Rails (5)

Echa un vistazo a la macro "should_be_restful" de shoulda. Esta macro pronto quedará obsoleta y solo estará disponible en la joya in woulda .

Me gustaría escribir una prueba funcional de un servicio web RESTful en el que estoy trabajando en una aplicación de Ruby on Rails.

La prueba es de una solicitud POST donde el cuerpo de la solicitud es un documento XML simple y no un formulario. ¿Alguna sugerencia sobre cómo hacer esto? El problema que estoy encontrando es cómo especificar el cuerpo XML en la llamada al método de publicación.


Acabo de escribir un script de prueba usando Net: HTTP para probar el servicio REST.


Puede hacerlo estableciendo @request.env[''RAW_POST_BODY''] en la secuencia de entrada deseada.


Lo siguiente funcionó para mí:

@request.env[''RAW_POST_DATA''] = MY_XML_STRING post :create


Encontré la siguiente solución en 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

De hecho, @xml_request_headers en mi método de setup y puedo usarlo en todas mis pruebas en este archivo. Tal vez sería una buena idea ponerlo en test_helper.rb si es requerido por más archivos.