相关疑难解决方法(0)

在Rspec测试中使用Devise进行身份验证

我无法让我的Rspec测试在Devise试图在before_filter中验证用户的项目上正确运行.

我按照Devise Git wiki的例子:如何:使用Rails 3(和rspec)进行控制器和视图测试

投机/ spec_helper.rb:

# This file is copied to spec/ when you run 'rails generate rspec:install'
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'

Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}

RSpec.configure do |config|
   config.include Devise::TestHelpers, :type => :controller
   config.extend ControllerMacros, :type => :controller
   config.fixture_path = "#{::Rails.root}/spec/fixtures"
   config.use_transactional_fixtures = true
   config.infer_base_class_for_anonymous_controllers = false
end
Run Code Online (Sandbox Code Playgroud)

规格/支持/ controller_macros.rb:

 module ControllerMacros
   def login_user
     before(:each) do
       @request.env["devise.mapping"] = Devise.mappings[:user]
       user = FactoryGirl.create(:user)
       sign_in user
     end
   end
 end
Run Code Online (Sandbox Code Playgroud)

规格/控制器/ test.rb:

require …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails devise

14
推荐指数
1
解决办法
8672
查看次数

标签 统计

devise ×1

rspec ×1

ruby-on-rails ×1