RoutingError на капибаре с рубиками - PullRequest
0 голосов
/ 19 декабря 2011

Я интегрирую капибару в проект. Сначала я просто хотел проверить, что отображает страницу входа в систему, поэтому я сделал этот код:

require 'acceptance/acceptance_helper'
feature 'Login' do
  scenario 'sign in with right credentials' do
    visit '/'
    save_and_open_page
  end
end

Но когда я запускаю тест, он показывает мне:

 Failure/Error: visit '/'
 ActionController::RoutingError:
   No route matches "/login"
 # ./spec/acceptance/login_spec.rb:6

Если я вхожу в приложение без действительного сеанса, он перенаправляет меня (код 302) на сервер rubycas для входа в систему (который имеет при запуске контекст / login) и после этого снова перенаправляет меня на мой сервер. Что я должен сделать, чтобы просто просмотреть страницу входа в систему или как сохранить ссылки на перенаправление в капибаре?

Ответы [ 2 ]

1 голос
/ 20 декабря 2011

Я обычно делаю это:

Внутри моего test.rb:

    require 'casclient'
  require 'casclient/frameworks/rails/filter'

  CASClient::Frameworks::Rails::Filter.configure(
      :cas_base_url => cas_base_url
  )

Измените свою спецификацию следующим образом:

CASClient::Frameworks::Rails::Filter.fake(username)
  visit '/'

Дайте мне знать, если это работает для вас.

=============================================== ===================================

Без использования «CASClient :: Frameworks :: Rails :: Filter.fake (username)» я тоже получаю ту же ошибку. Причина в том, что cas перенаправляет вас на свой базовый URL с помощью параметра "/login?service=http%3A%2d%2Fwww.example.com%aF", подобного этому. А отсюда и жалобы на пропущенный маршрут.

  • Проверьте ваш журнал испытаний
0 голосов
/ 19 декабря 2011

Убедитесь, что вы добавили правильные подходящие маршруты. кажется, что вы пропускаете маршруты.

Надеюсь, это поможет вам.

Для написания маршрутов вы можете получить помощь от http://railscasts.com/episodes/79-generate-named-routes

...