«Не найдено» при тестировании проверки подлинности omniauth Facebook с помощью Capybara - PullRequest
0 голосов
/ 29 марта 2011

В моем проекте реализована система аутентификации Omniauth на Facebook. Я отлично работаю в браузере, и до сегодняшнего дня у меня был полный набор интеграционных тестов, написанных и проходящих с использованием Capybara.

Сегодня, однако, я запустил набор тестов, и все связанные тесты не пройдены.

Проблема связана с этим вспомогательным модулем, который используется практически во всех тестах для имитации аутентификации в Facebook (или иным способом):

module IntegrationSpecHelper
  def login_with_oauth service
    visit "/auth/#{service}"
    save_and_open_page
  end
end

Кажется, это больше не работает, хотя это было 2 дня назад и все еще работает на моем сервере разработки. «Save_and_open_page» отображает страницу, которая буквально содержит строку «Not Found» и ничего больше.

Кто-нибудь знает, что может вызвать это?

Ответы [ 2 ]

2 голосов
/ 11 апреля 2011

В конце концов понял это сам.

В основном я настраивал своих провайдеров аутентификации на основе среды в моем инициализаторе конфигурации omniauth.У меня есть такая настройка:

  if Rails.env.production?
    provider :facebook, ...
    provider :twitter, ...
  elsif Rails.env.development?
    provider :facebook, ...
    provider :twitter, ...
  end

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

0 голосов
/ 07 мая 2011

В rails 3 вы можете поместить каждый инициализатор конфигурации omniauth в соответствующий файл среды в папке config / environment, то есть development.rb, test.rb и production.rb

...