尝试使用authlogic运行控制器测试时,未定义的方法`setup'for main:Object

时间:2011-05-10 12:36:00

标签: ruby-on-rails-3 authlogic rspec2

我对RSpec测试有点新,我正在尝试使用RSpec 2和Authlogic 3身份验证在我的Rails 3应用程序中运行一些控制器测试。

按照Authlogic文档(http://rdoc.info/github/binarylogic/authlogic/master/Authlogic/TestCase)提供的步骤,我的文件中包含以下代码:

spec_helper.rb

require "authlogic/test_case" # include at the top of test_helper.rb  

events_controller_spec.rb

require 'spec_helper'  
setup :activate_authlogic  

通过rake spec SPEC='spec/controllers/eventos_controller_spec.rb'运行测试我收到以下错误:

events_controller_spec.rb:2: undefined method `setup' for main:Object (NoMethodError)

当我在使用authlogic之前运行测试时,我没有遇到任何问题。

我正在使用Ubuntu 11.04和这个配置:

ruby - 1.8.7  
rails - 3.0.7  
authlogic - 3.0.2  
rspec-rails - 2.4.1  
factory_girl_rails - 1.0.1

1 个答案:

答案 0 :(得分:1)

设置方法未定义,因为它是Test::Unit method。来自authlogic docs

  

如果您正在使用Test :: Unit :: TestCase(ruby附带的标准测试库),那么您可以跳过下一部分。如果不是,则需要将Authlogic :: TestCase包含在测试套件中。

要使用RSpec执行相同的操作,您必须包含Authlogic :: TestCase并在每个规范之前调用activate_authlogic:

require 'spec_helper'

describe EventsController do
  include Authlogic::TestCase

  before(:each) do
    activate_authlogic
  end
end