2011-02-24 3 views
1

필자의 기능 파일을 프로파일 링했습니다. 내 로그인 단계에 가장 많은 시간이 걸리는 것으로 나타났습니다.오이 속도, 성능 튜닝

Given /^I am logged in as "(.+)"$/ do |login| 
    visit path_to('the home page') 
    fill_in "login", :with => login 
    fill_in "password", :with => 'foobar' 
    click_button "loginButton" 
end 

내 개발 상자에서 5 초 이상 걸립니다.

로그인 기능을 사용하여 다른 단계를 만들고 싶지만 양식을 작성하지 않고 단순히 세션을 설정하고 다른 테스트에서 백그라운드 시나리오로 사용했습니다.

위의 단계를 통해 사용자를 찾을 수 있지만 어떻게 세션을 저장하고 리디렉션 할 수 있습니까?

답변

0

당신은 다른 단계에서 인증을 피할 수 있습니다. 하지만 인증 워크 플로를 다른 곳에서 테스트 한 경우 해를 보지 못합니다. 나는 이것을 시도하지 않았지만 가변 범위가 맞아야한다고 생각합니다.

Given /^I am logged in as "(.+)" through session$/ do |login| 
    @user= User.find_by_login(login) 
    #open the class and spike 
    class ApplicationController < ActionController::Base 
    def current_user 
     @user 
    end 
    end 
end 
+0

나머지 루비 프로세스 수명 동안 current_user를 대체하지 않겠습니까? 만약 그렇다면, 당신이 정말로 로그인하는 다른 오이 기능을 가지고 있다면, 이것은 정말로 혼란스러운 결과를 낳을 수 있습니다 ... –

+0

나는 약간의 해키가 최고라고 동의합니다. after 시나리오 후크를 사용하여 current_user를 nil로 재설정 할 수 있습니다. 태그가있는 시나리오를 catch하여 로그인 단계가 필요한 시나리오를 파악할 수 있습니다. –