2009-06-05 12 views
0

私のrspecのルートは次の通りです:controller => 'phones'、:action => 'edit'は 'phones/123/edit'でなければならず、rspecテストとレーキルートに従ってISです。しかし、私がredirect_to expectationを作成すると、期待は失敗します。ここでRspec redirect_toルートが期待していない(または誤って解析されていますか?

は、URLのルートテストです:

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

はここで失敗期待です:

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

そして、これは私がテストしてもらうメッセージです:

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

どのようなschiznitsですか?

答えて

2

これが失敗する理由は、あなたが期待していたIDが不足していることです。それは次のようになります。 response.shouldのredirect_to::=> '電話のコントローラ、:アクション=> '編集' 十分

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

閉じる...私はartuallyこのようなmock_phone.idを使用するようになってしまいました、:id => wock_phone.id Thanks Pell!ところで、どこにでもあなたを見たことがありますか? Githubやその他のフォーラムであなたを見た気がします。 – btelles

関連する問題