2012-05-22 2 views
1
내가 로그인 폼이 제대로 리디렉션 있는지 확인하기 위해 다음 테스트를 사용하려고 해요

와 1.3.4 : 그러나응답 개체가 카피 바라

it "should allow you to login" do 
    visit "/" 
    fill_in 'Email', :with => '[email protected]' 
    fill_in 'Pass', :with => 'password' 
    click_button 'Login' 
    response.should be_redirect 
end 

을 RSpec에 응답이 존재하지 않는다는 메시지와 함께 실패 . 레일 2.3.4 응용 프로그램을 실행 중이므로 rspec 1.3.4가 설치되어 있습니다. 응답을 테스트하려면 어떻게합니까?

+0

내 팁은 들어 올립니다 보석을 사용하고, 바로 응답 줄 앞에 binding.pry 배치하는 것입니다. 그런 다음 Capybara 객체를 이와 같이 검사 할 수 있습니다. – Ivan

답변

0

통합 스펙 (RSpec이 버전 2에서 '요청 스펙'이라고 부르는 것)이라고 가정합니다. 그렇다면 응답 객체를 사용할 수 없습니다. 이를 위해, 당신은

describe MyController do 
    it "should redirect" do 
    post :some_path, {:email => '[email protected]', :pass => 'password'} 
    response.should be_redirect 
    end 
end 

아니면 통합 사양에

이 성공적으로 리디렉션 후 예상 경로를 테스트, 예컨대 : 컨트롤러의 사양이 필요합니다. 이 RSpec에 1에 대해 확실하지 RSpec에 2 작동합니다

current_path.should == "/some_path" 
관련 문제