rotas redirect_to rspec estão falhando expectativas (ou misparsed?), como é?
-
11-09-2019 - |
Pergunta
Parece que minha rota rspec para: controller => 'telefones',: action => obras 'Editar' ... deve ser 'telefones / 123 / Editar' e está de acordo com testes rspec e rotas de rake. Mas quando eu criar uma expectativa redirect_to, a expectativa falha.
Aqui está o teste de rotas para a url:
it "maps #edit" do
route_for(:controller => "phones", :action => "edit", :id => "1").should == "/phones/1/edit"
end #THIS TEST PASSES
Aqui está a expectativa de que falha:
put :update, :id => "1", :phone => {}
response.should redirect_to :controller => 'phones', :action => 'edit'
E esta é a mensagem que recebo nos testes:
expected redirect to {:controller=>"phones", :action=>"edit"},
got redirect to "http://test.host/phones/1089/edit" # BUT THIS THE URL I WAS EXPECTING!
O que os schiznits?
Solução
A razão que esta está falhando é que você está faltando o ID na sua expectativa. Ele deve ser:
response.should redirect_to :controller => 'phones', :action => 'edit', :id=>1
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow