为自定义设计动作编写规范

时间:2013-06-04 19:39:54

标签: ruby-on-rails rspec devise

我的应用程序的自定义版本为Devise::RegistrationsController。当我尝试运行它时,我收到以下错误:

 Failure/Error: post :create
 AbstractController::ActionNotFound:
   Could not find devise mapping for path "/users".
   Maybe you forgot to wrap your route inside the scope block? For example:

       devise_scope :user do
         match "/some/route" => "some_devise_controller"
       end

我不明白为什么我会收到这个错误,因为从用户的角度来看,一切都运行良好。这是我在routes/config.rb中的内容:

devise_for :users, :path_names => {:sign_in => 'login', :sign_out => 'logout', :sign_up => 'signup'}

有什么想法吗?在为Devise控制器编写规范时,我有什么特别的事情吗?

1 个答案:

答案 0 :(得分:0)

在测试Devise控制器时,需要指定范围。它很简单:

before { @request.env['devise.mapping'] = Devise.mappings[:user] }

假设用户是您尝试进行身份验证的模型