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?

Foi útil?

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
scroll top