2014-01-31 2 views
0

나는 Rack 응용 프로그램을 생성 할 Ruby 명령 줄 응용 프로그램을 만들고 있습니다. 만들어진 Rack 응용 프로그램이 유효한 Rack 응용 프로그램인지 테스트하고 싶습니다. 나는 Aruba와 Cucumber를 사용하여 CLI가 올바른 파일과 디렉토리 구조를 만들었는지 테스트하기 시작했지만 이제는 rackup을 실행할 준비가되었고 응용 프로그램이 올바르게 실행되는지 확인합니다. Cucumber와 Capybara가이 새로 생성 된 응용 프로그램과 상호 작용하도록하려면 어떻게해야합니까? @startup_output = "foo" 일종의을 생성합니다오이를 사용하여 랙 애플리케이션 생성을 테스트하는 방법은 무엇입니까?

답변

0

랙 응용 프로그램의 루트 페이지를 생성 한 다음 루트 경로를하고 랙 시작시 해당 페이지

def response 
    if request.path "/" 
     Rack::Response.new(render("index.html.erb")) 
    else 
     Rack::Response.new("Not Found", 404) 
    end 
end 

에 출력의 어떤 종류를 확인하기 위해하다고 생각 어떤 경로 카피 바라의 방문이 루트 페이지에 출력 <%= @startup_output %>

카피 바라 :

visit('/') 
page.should have_content('foo') 

당신이 태어나 셨 경우 카피 바라가 응용 프로그램을 시작 테스트 내부 레이크 작업을 사용하려고 가지고 D :

system "rake rack:start" 
+0

덕분에, 그 시작이다,하지만 난 이미 랙 응용 프로그램을 가지고, 나는 이미 아루바을 통해'rackup' 전화 해요 . 이것이 카피 바라의 기본 동작과 다른 점이라고 생각합니다. 따라서이 새로 만들어진 Rack 응용 프로그램을 어디에서 찾을 수 있는지 알 수 없습니다. Capybara에게'config.ru' 파일을 적재 시키거나 실행중인 포트를 지정해야한다고 생각하지만, 어떻게해야할지 모르겠습니다. – Andrew

+0

구성 정보 (포트 번호, 경로 등)로 YAML 파일을 만들고 그 데이터에 capybara를로드 할 수 없습니까? 그런 다음 capybara 테스트에서 여전히'visit ("# {CONFIG.root_url}")'을 사용할 수 있습니다. YAML에서 railscast (http://railscasts.com/episodes/85-yaml-configuration-revised)를 확인하는 것이 좋습니다. 몇 가지 아이디어를 줄 수 있습니다. 행운을 빕니다 – Davey