Estoy intentando enviar contenido XML mediante POST a un método de controlador ('Parse') ('índice') en un proyecto simple de Rails. No es RESTful ya que mi nombre de modelo es diferente, por ejemplo, 'autos'. Tengo el siguiente en una prueba funcional que funciona:HTTP POST Contenido XML de pepino
def test_index
...
data_file_path = File.dirname(__FILE__) +
'/../../app/views/layouts/index.xml.erb'
message = ERB.new(File.read(data_file_path))
xml_result = message.result(binding)
doc = REXML::Document.new xml_result
@request.env['RAW_POST_DATA'] = xml_result
post :index
assert_response :success
end
Ahora estoy tratando de pepino (0.4.3), y me gustaría saber cómo puedo simular la solicitud POST en una cláusula "Cuando". Sólo tengo un método de controlador de 'índice', y tengo el siguiente en config/routes.rb:
ActionController::Routing::Routes.draw do |map|
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
end
- webrat dentro de pepino es sólo para HTML, y no puedo hacer Post?
- @request variable no está disponible en el entorno de pepino?
- Si utilizo algo como 'índice de visita' (asumiendo que es controlador de Parse, método de índice) en funciones/step_definitions/car_steps.rb, me sale el siguiente error:
undefined method `index' for # (NoMethodError)
Cualquier sugerencia cómo hacer pruebas de integración con Cucumber para HTTP POST con contenido XML.
@mbuf, si una de las respuestas resolvió su problema, debe marcarla como "respondida" haciendo clic en la marca de verificación debajo del área de votación. –
Hecho. ¡Gracias por hacérmelo saber! – mbuf
He publicado cómo probar JSON POST usando Rails y pepino aquí: http://stackoverflow.com/questions/5098626/how-to-test-posts-in-rails-capybara-cucumber-or-rspec/10404063# 10404063 –