Ruby on rails 4 黄瓜的Authlogic激活

Ruby on rails 4 黄瓜的Authlogic激活,ruby-on-rails-4,cucumber,capybara,authlogic,Ruby On Rails 4,Cucumber,Capybara,Authlogic,我有一个Rails应用程序,如果没有用户登录,它会自动从主页重定向到登录页面。我使用Authlogic进行身份验证,Cucumber和Capybara进行测试 我有以下情况: Scenario: Start application Given I am not logged in When I go to the application web page Then I should see a login form 通过以下测试步骤: Given(/^I am not logged

我有一个Rails应用程序,如果没有用户登录,它会自动从主页重定向到登录页面。我使用Authlogic进行身份验证,Cucumber和Capybara进行测试

我有以下情况:

Scenario: Start application
  Given I am not logged in
  When I go to the application web page
  Then I should see a login form
通过以下测试步骤:

Given(/^I am not logged in$/) do
end


When(/^I go to the application web page$/) do
  visit root_path
end
那么我应该看到一个登录表单有点复杂,因为它是通配符,但我还没有做到这一点,所以它可能不重要)

按照的指导,我创建了一个文件
features\support\authlogic,rb
,其中包含:

require 'authlogic/test_case'

World(Authlogic::TestCase)

ApplicationController.skip_before_filter :activate_authlogic

Before do
  activate_authlogic
end
但是当我运行Cucumber时,
visit root\u path
失败,原因是
Authlogic::Session::Activation::NotActivatedError:在创建对象之前,必须使用控制器对象激活Authlogic::Session::Base.controller


我做错了什么?

我在rails3上使用了完全相同的代码,今天我发现了完全相同的错误
Authlogic::Session::Activation::NotActivatedError:当我尝试使用创建对象运行Cumber测试时,必须先使用控制器对象激活Authlogic::Session::Base.controller栏杆

帮助我的是删除了
World(Authlogic::TestCase)
ApplicationController.skip\u-before\u-filter:activate\u-Authlogic
并仅将其保留在
support/Authlogic.rb
中:

require "authlogic/test_case"

Before do
  activate_authlogic
end

找到了这个解决方案。现在它可以工作了,我稍后会检查是否有任何副作用。

您使用的是哪种水豚驱动程序——默认的进程内Rack::Test驱动程序还是支持Javascript的驱动程序?可能是默认的,因为我不知道做了什么来改变它。这不是我所想的支持Javascript的驱动程序的问题。六羟甲基三聚氰胺六甲醚。