相关疑难解决方法(0)

配置Warden以用于RSpec控制器规范

我能够使用Devise的sign_in方法在我的控制器规范中登录用户.但是现在我正在从我的应用程序中删除Devise,我不太确定如何使用Warden自己的类似功能.

我应该如何设置spec/spec_helper.rb和相关spec/support/*.rb文件以使Warden在控制器规格内充分运行?

我已尝试spec/support/warden.rb使用以下内容设置文件:

RSpec.configure do |config|
  config.include Warden::Test::Helpers

  config.after do
    Warden.test_reset!
  end
end
Run Code Online (Sandbox Code Playgroud)

然后我有before类似的调用来验证user工厂:

before { login_as FactoryGirl.create(:user) }
Run Code Online (Sandbox Code Playgroud)

但这是我一直看到的错误:

NameError:
  undefined method `user' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

此错误追溯到authenticate_user!控制器中的方法:

def authenticate_user!
  redirect_to login_path, notice: "You need to sign in or sign up before continuing." if env['warden'].user.nil?
end
Run Code Online (Sandbox Code Playgroud)

我很感激任何人都可以提供的任何指导.

rspec ruby-on-rails warden ruby-on-rails-3

20
推荐指数
2
解决办法
1万
查看次数

标签 统计

rspec ×1

ruby-on-rails ×1

ruby-on-rails-3 ×1

warden ×1