2011-07-18 66 views
1

人們,我是RoR環境的新人,我試圖做一些顯然簡單的事情,但它變得越來越複雜。cancan Abilty,Devise和Rspec測試

我沒有在我的應用程序中的角色,我只是想添加一些功能登錄用戶,但從RSpec測試開始,我無法找到測試用戶是否登錄的方式...

我使用CanCan和Devise。

我試過下面的代碼,但它沒有奏效,說沒有方法叫做sign_in,我已經試過了current_user和user_signed_in?

before(:each) do 
    @user = User.new 
    sign_in @user 
end 

我錯過了什麼?

的Gemfile:

source 'http://rubygems.org' 

gem 'rails', '~> 3.0.7' 

# authentication 
gem 'devise', '~> 1.3.4' 

#authorization 
gem "cancan" 

# mongodb database 
gem 'mongoid', '~> 2.0' 
gem 'bson_ext', '~> 1.3' 

gem "high_voltage" 
gem 'translate_routes' 

gem 'factory_girl_rails', "~> 1.1.rc1" 

group :development, :test do 
    gem "rspec-rails", ">= 2.0.0" 
    gem "cucumber-rails", ">= 0.3.2" 
    gem "webrat", ">= 0.7.2" 
    gem 'rspec', '2.5.0' 
    gem 'spork' 
    gem 'launchy' 
    gem 'autotest' 
    gem 'autotest-rails-pure' 
    gem 'ruby-debug' 
    gem 'rake', '0.9.2' 
    gem 'shoulda' 
end 

回答

1

你有一個規格/支持/ devise.rb文件?它需要包括

RSpec.configure do |config| 
    config.include Devise::TestHelpers, :type => :controller 
end 
+0

不過,故障/錯誤:sign_in @user NoMethodError: 未定義的方法'sign_in'爲#<:: RSpec的核心:: ExampleGroup :: Nested_1 :: Nested_1:0xb66e9bbc> – JRafaelM

+0

又該我放進去了?它沒有配置... – JRafaelM

+0

你運行rails生成rspec:安裝在你的應用程序的根目錄? – eugen