Rails 4 + Rspec + Devise:用户sign_in的控制器规范中未定义的方法'env'

Shk*_*rik 8 ruby rspec ruby-on-rails devise ruby-on-rails-4

在我的spec_helper.rb中,我添加了

config.include Devise::TestHelpers, :type => :controller
Run Code Online (Sandbox Code Playgroud)

在之前的控制器规范中:所有钩子我试图用这个代码登录用户

 @request.env["devise.mapping"] = Devise.mappings[:user]
 user = FactoryGirl.create(:confirmed_user)
 sign_in user
Run Code Online (Sandbox Code Playgroud)

并得到NoM​​ethodError:nil的未定义方法`env':NilClass.

有任何想法吗?

Shk*_*rik 15

我改变before(:all)before(:each),现在它有效.看起来像devise(使用的github主分支)和rspec2.14.1 之间的API不兼容.