我正在编写我的sinatra应用程序的BDD / TDD方法。我想添加身份验证。我目前有一个如下所示的功能文件:
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 :(得分:0)
我检查用户未登录的一种方法是检查页面是否显示“登录”链接/按钮(以及相关功能)。您可以执行相反操作以查看用户是否已登录。例如,用户的名称是否显示在页面的横幅部分中。
这对我来说似乎是最好的方式,因为这是用户如何确定它,而这完全取决于他们的行为。