RoutingError на капибаре с рубиками
Я интегрирую капибару в проект. Сначала я просто хотел проверить, что отображает страницу входа в систему, поэтому я сделал этот код:
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 ответа
Я обычно делаю это:
Внутри моего 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", подобного этому. А отсюда и жалобы на пропущенный маршрут.
- Проверьте свой тестовый журнал
Убедитесь, что вы добавили правильные подходящие маршруты. кажется, что вы пропускаете маршруты.
Я надеюсь, это поможет вам.
Для написания маршрутов вы можете получить помощь по http://railscasts.com/episodes/79-generate-named-routes