Devise + Omniauth - тестирование - получение совпадений маршрута «/ oauth / authorize»

Я пытаюсь написать тесты для аутентификации в Twitter и Facebook. Я использую Devise и Omniauth. Когда я пробую его, он работает правильно, но я не могу пройти тесты.

Я следую инструкциям , но для меня этого недостаточно, плюс я Немного по-другому делаю (уже есть кодовая база). У меня есть собственные контроллеры для omniauth_callbacks и регистраций.

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

(::) failed steps (::)

No route matches "/oauth/authorize" (ActionController::RoutingError)
:10:in `synchronize'
(eval):2:in `click_link'
./features/step_definitions/web_steps.rb:57:in `/^(?:|I )follow "([^"]*)"$/'
features/link_twitter.feature:19:in `And I link twitter'

Failing Scenarios:
cucumber features/link_twitter.feature:16 # Scenario: User links twitter

Откуда идет этот / oauth / authorize маршрут и как мне с этим справиться ?

Не похоже, что он попадает в мой OmniauthCallbacksController . Он переходит по ссылке и затем умирает. Я думаю, что это связано с методом обратного вызова Omniauth в тестовом режиме, но я не знаю, как это изменить / управлять.

Обновление : Вот мои маршруты для Devise.

devise_for :users, :controllers => { 
    :omniauth_callbacks => "users/omniauth_callbacks", 
    :registrations => 'registrations', 
    :passwords => 'passwords', 
    :sessions => 'sessions', 
    :confirmations => 'confirmations' 
} do
  match 'confirmations/unconfirmed' => 'confirmations#unconfirmed', :as => :unconfirmed
  match 'confirmations/send_advisor_confirmation/:id' => 'confirmations#unregistered_advisor_confirmation', :as => :send_advisor_confirmation
  get '/users/auth/:provider' => 'users/omniauth_callbacks#passthru'
end

5
задан j0k 20 March 2013 в 13:13
поделиться