我对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
答案 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