2009-06-05 8 views
0

Il semble que ma route rspec pour: controller => 'phones',: action => 'edit' fonctionne ... elle devrait être 'phones/123/edit', et IS selon les tests rspec et les routes rake. Mais quand je crée une attente redirect_to, l'attente échoue.Rspec redirect_to les routes ne répondent pas aux attentes (ou mal évaluées?), Comment ça se fait?

Voici le test de routes pour l'url:

it "maps #edit" do 
     route_for(:controller => "phones", :action => "edit", :id => "1").should == "/phones/1/edit" 
    end #THIS TEST PASSES 

est ici l'attente qui échoue:

put :update, :id => "1", :phone => {} 
    response.should redirect_to :controller => 'phones', :action => 'edit' 

Et c'est le message que je reçois dans les tests:

expected redirect to {:controller=>"phones", :action=>"edit"}, 
got redirect to "http://test.host/phones/1089/edit" # BUT THIS THE URL I WAS EXPECTING! 

Qu'est-ce que les schiznits?

Répondre

2

La raison pour laquelle cela échoue est qu'il vous manque l'ID dans votre attente. Il devrait être:

response.should redirect_to :controller => 'phones', :action => 'edit', :id=>1 
+0

Fermer assez ... Je artually fini par avoir à utiliser le mock_phone.id comme ceci: response.should redirect_to: controller => 'téléphones',: action => 'modifier' ,: id => wock_phone.id Merci Pell! Au fait, est-ce que je t'ai vu partout? J'ai l'impression de vous avoir vu sur Github ou sur d'autres forums. – btelles