2012-10-24 2 views
0

내 sinatra 응용 프로그램을 쓰는 데 BDD/TDD 방식을 사용하고 있습니다. 나는 인증을 추가하고 싶다. sinatra 응용 프로그램에서 오이를 사용하여 인증을 테스트하는 방법은 무엇입니까?

Scenario: Unauthenticated redirects to login page 
    Given I am not logged in 
    When I go to the homepage 
    Then I should be redirected to the login page 

내 단계

는 다음과 같이 :

Given /^I am not logged in$/ do 
    # not sure how to ensure this 
end 

When /^I go to the homepage$/ do 
    visit '/' 
end 

Then /^I should be redirected to the login page$/ do 
    current_path.should == '/auth/login' 
end 

이미 support/env.rb 내 응용 프로그램을 설정하고 : 저는 현재 기능이 보이는 파일이

require 'capybara/cucumber' 
Capybara.app = MySintraApp 

그리고 내 앱은 다음과 같습니다.

class MySinatraApp < Sinatra::Base 
    get '/' do 
    redirect '/auth/login' #todo: unless logged_in? 
    haml :index 
    end 

    get '/auth/login' do 
    haml :login 
    end 
end 

"로그인하지 않도록"단계를 구현하려면 어떻게해야합니까? BDD/TDD 방식으로 로그인 기능을 구현하려면 어떻게해야합니까?

답변

0

사용자가 로그인하지 않은 것을 확인한 한 가지 방법은 페이지에 "로그인"링크/버튼 (및 관련 기능)이 표시되는지 확인하는 것입니다. 사용자가 로그인했는지 확인하기 위해 대화를 수행 할 수 있습니다 (예 : 사용자의 이름이 페이지의 배너 부분에 표시되는지 여부).

내게 가장 좋은 방법 인 것처럼 보입니다. 사용자가 그것을 확인하는 방법이기 때문에 자신의 행동에 관한 것입니다.

관련 문제