2011-09-07 3 views
4

내 프로젝트 개발의 일부가 완료되었습니다. 우리의 회사는 개발 된 코드 에 대한 오이 테스트 케이스를 작성하고 이후 개발에 대해서도 요청합니다. routes 파일에는 admin 및 hosts.Devise에 대한 두 개의 하위 도메인이 있으며 이 사용됩니다. 홈 페이지에서 비 등록을 한 사용자의 토지, 유효한 이메일을 입력하고 다음 page..the 페이지로 리디렉션됩니다 더 암호가없는 경우하위 도메인, 오이 또는 카피 바라 및 rspec을 사용하여 테스트

지금 나는 오이를 설치하고 첫 번째 이야기의 첫 번째 시나리오를 작성했습니다 들.

Scenario: Non registered user lands on beta home page. 
Given: I am on the homepage 
When: I enter valid email with "[email protected]". 
Then: I should be redirected to request invitation page. 

문제는 내가 특정 하위 도메인이 에 root_path를 찾기 위해 path.rb 파일을 지정 어떻게 지금 내가 가진 내 루트 파일에

constraints :subdomain => ADMIN_SUBDOMAIN do 
    .... 
    root :to => admin#index 
end 
constraints :subdomain => HOST do 
    ... 
    root :to => home#index. 
end 

입니다. 하위 도메인 제약 조건 외부에 root_path가 작성되지 않았습니다. 테스트에 처음입니다. 정말이 일에 붙어 있습니다. 도움을 주시면 감사하겠습니다.

저는 누군가이 사실을 capybara를 사용하여 구현할 수 있음을 알고 있습니다. 그렇다면 그것에 대해 조금 생각해보십시오.

답변

6

꽤 간단했습니다. 카피 바라는 default_host 메소드를 제공합니다. 은 그래서 난 그냥 언급

When I visit subomain sub 

그리고 다음 webstep 필요


Given /^I visit subdomain (.*)$/ do |site_domain| 

    site_domain = "http://sub.example.com" if site_domain == "admin" 

    Capybara.default_host = site_domain 
    visit "/" 
end 

업데이트 : default_host를가 그것을 언급하지 않는 한 사용 안됩니다

문서에서. 대신 방문시 절대 경로를 사용해보십시오.

Given /^I visit subdomain (.*)$/ do |site_domain| 

    site_domain = "http://sub.example.com" if site_domain == "admin" 
    visit site_domain 
end 
+0

신의 축복 : D – imderek

+0

완벽하지만 세션은 하위 도메인을 통해 작동하지 않습니다. 쿠키 도메인을 "모든 하위 도메인"유형 (.example.com)으로 변경하려면 어떻게해야합니까? –

관련 문제