Rspec rutas redirect_to están fallando las expectativas (o misparsed?), ¿Por qué?
-
11-09-2019 - |
Pregunta
Parece que mi ruta rspec para: controlador => 'teléfonos',: action => 'editar' funciona ... que debería ser 'teléfonos / 123 / editar', y es de acuerdo a las pruebas rspec y rutas rastrillo. Sin embargo, cuando se crea una expectativa redirect_to, la expectativa falla.
Aquí está la prueba de rutas para la url:
it "maps #edit" do
route_for(:controller => "phones", :action => "edit", :id => "1").should == "/phones/1/edit"
end #THIS TEST PASSES
Aquí está la expectativa de que la falla:
put :update, :id => "1", :phone => {}
response.should redirect_to :controller => 'phones', :action => 'edit'
Y este es el mensaje que recibo en las pruebas:
expected redirect to {:controller=>"phones", :action=>"edit"},
got redirect to "http://test.host/phones/1089/edit" # BUT THIS THE URL I WAS EXPECTING!
Lo que los schiznits?
Solución
La razón de esto está fallando es que se echa en falta la id en sus expectativas. Debe ser:
response.should redirect_to :controller => 'phones', :action => 'edit', :id=>1
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow