2011-12-19 5 views
0

나는 카피 바라를 프로젝트에 통합시키고있다. 첫 번째 인스턴스에서, 난 그냥 로그인 페이지를 표시 내용을 확인하고 싶었다, 그래서 나는이 코드를 만든 :루비 냐와 함께 카피 바라에 RoutingError

require 'acceptance/acceptance_helper' 
feature 'Login' do 
    scenario 'sign in with right credentials' do 
    visit '/' 
    save_and_open_page 
    end 
end 

을하지만 테스트를 실행할 때, 그것은 나를 보여줍니다

Failure/Error: visit '/' 
ActionController::RoutingError: 
    No route matches "/login" 
# ./spec/acceptance/login_spec.rb:6 

내가 입력하면 유효한 세션없이 응용 프로그램에 연결하면 ruby ​​서버로 나를 리디렉션 (코드 302)하고 로그인하면/login 컨텍스트가 있고 그 후에 다시 내 서버로 리디렉션됩니다. 로그인 페이지를 보거나 capybara에서 리디렉션 참조를 유지하는 방법은 무엇입니까?

답변

1

에서 도움을받을 수 있습니다 나는 보통 이렇게

require 'casclient' 
    require 'casclient/frameworks/rails/filter' 

    CASClient::Frameworks::Rails::Filter.configure(
     :cas_base_url => cas_base_url 
) 

이처럼 스펙을 수정

CASClient::Frameworks::Rails::Filter.fake(username) 
    visit '/' 

내가 어떻게 작동하는지 알려주세요.

============================================== ====================================

을 :: 레일 "CASClient :: 프레임 워크를 사용하지 않고 :: Filter.fake (username) "나는 같은 오류를받습니다. 그 이유는 cas이 "/login?service=http%3A%2Dwww2example.com%aF"와 같은 기본 URL로 리디렉션하기 때문입니다. 따라서 경로가 누락되었다고 불평합니다.

  • 는 테스트 로그 확인
0

는 적절한 일치하는 경로를 추가해야합니다. 당신은 길을 놓친 것 같습니다.

이 정보가 도움이되기를 바랍니다. 내 test.rb 내부

:

쓰기 경로를 들어 당신이 http://railscasts.com/episodes/79-generate-named-routes

+0

그러나 '/ 로그인', 내 응용 프로그램에서 유효한 경로되지 않은 다른 응용 프로그램과 주소에있는 인증 시스템 (rubycas-단절)의 경로입니다. 예를 들어, 내 응용 프로그램 (http : // localhost : 3000)을 입력하고 세션이 없으면 즉시 인증 서버 (http : //www.authserver.com/login?)로 리디렉션됩니다. .) 그래서 여기에 로그인 페이지가 있고 로그인하면 나에게 다시 localhost로 리디렉션됩니다. 내 애플리케이션에서 '/ login'을 유효한 경로로 추가해야하는 이유는 무엇입니까? –

+0

당신이 확실히하고있는 것, capybara는 필드를 채우지 않습니다. 예를 들어, 원격 페이지 페이스 북을보고 있으면 입력하십시오. 그러면 작동하지 않을 것입니다. 다른 웹 사이트 대신 로컬 호스트에서 테스트 사례를 실행해야합니다. –

관련 문제