RSpec Devise会话测试

Kox*_*xzi 4 ruby rspec ruby-on-rails devise rspec-rails

使用rails 4.2.0和最新版本的RSpec,我生成了控制器测试。

如何确保我的管理员用户已登录?

例如:如果current_user.admin?

在rspec测试中,它像这样提到它:

let(:valid_session) { {} }
Run Code Online (Sandbox Code Playgroud)

如何输入有效的会话?

Moh*_*ady 5

首先,您需要在spec_helper文件中添加devise助手,以便在测试中可以访问,如Wiki中所述

RSpec.configure do |config|
  config.include Devise::TestHelpers, :type => :controller
end
Run Code Online (Sandbox Code Playgroud)

然后,在控制器中,您可以轻松地创建用户对象并使用sign_inhelper方法对其进行登录