2009-06-05 3 views
0

내 rspec 경로 : controller => 'phones', : action => 'edit'works ... rspec 테스트 및 레이크 경로에 따라 'phones/123/edit'이어야하고 IS 여야합니다. 그러나 redirect_to expectation을 만들면 기대치가 충족되지 않습니다. 여기 Rspec redirect_to routes가 예상치 못한 (또는 잘못 분석 되었습니까?) 어떻게됩니까?

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

실패 기대입니다 : 여기

는 URL의 경로 시험의

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! 

대체 무슨 일이야?

답변

2

이 오류가 발생하는 이유는 사용자가 예상치를 충족하지 못했기 때문입니다. 그것은해야한다 : response.should의 redirect_to : => '전화'컨트롤러 : 행동 => '편집'충분히

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

닫기 ... 나는 artually이 같은 mock_phone.id를 사용하지 끝났다 , : id => wock_phone.id 감사합니다. 그건 그렇고 어디서나 내가 널 봤어? 나는 Github이나 다른 포럼에서 당신을 만난 느낌이 들었습니다. – btelles