2013-06-04 3 views
1

У меня есть приложение, которое имеет пользовательскую версию 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?

+0

вы добавили 'RSpec.configure делать | конфигурации | config.include Devise :: TestHelpers,: type =>: controller end'? –

ответ

0

Когда вы тестируете контроллеры Devise, вам необходимо указать область действия. Это так же просто, как:

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

Предполагая, что пользователь является модель, которую вы пытаетесь проверить подлинность

+0

Это сделало. Благодарю. –

Смежные вопросы