2009-06-05 4 views
0

Es scheint meine rspec route für: controller => 'phones',: action => 'bearbeiten' funktioniert ... es sollte 'phones/123/edit', und IS gemäß rspec Tests und Rake-Routen sein. Aber wenn ich eine redirect_to-Erwartung erstelle, scheitert die Erwartung.Rspec redirect_to Routen erfüllen Erwartungen nicht (oder falsch?), Wie kommt es?

Hier ist der Routen-Test für die url:

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

Hier ist die Erwartung, dass fehlschlägt:

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

Und dies ist die Botschaft, die ich in den Tests erhalten:

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

Was die Schizniten?

Antwort

2

Der Grund dafür ist, dass Sie die ID in Ihrer Erwartung vermissen. Es sollte:

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

Nahe genug ... Ich landete artually die mock_phone.id wie diese zu verwenden mit bis: response.should redirect_to: controller => 'Telefone',: action => 'Bearbeiten' ,: id => wock_phone.id Danke Pell! Übrigens, habe ich dich irgendwo gesehen? Ich habe das Gefühl, dass ich dich auf Github oder in anderen Foren gesehen habe. – btelles

Verwandte Themen