Given I have a rails app And I'm using cucumber And I'm using capybara And I have an action that results in a redirect_to "http://some.other.domain.com/some_path" When I test this action Then the in-app portion of the test works fine But I see this error: No route matches "/some_path" with {:method=>:get} (ActionController::RoutingError)
Таким образом, капибара правильно перенаправляется на "http://some.other.domain.com/some_path", но по некоторым причинам она думает, что должна обработать часть пути URL в моем приложении. ОБРАТИТЕ ВНИМАНИЕ, что у капибары нет проблемы вообще с "http://some.other.domain.com/" - моя тестовая передача, если я перенаправляю к URL без части пути.
Действительно ли это - ошибка?
Какой драйвер вы используете? Драйвер Rack-Test не позволит вам запрашивать данные из других доменов. Если Capybara делает это с помощью Selenium или Culerity, это определенно ошибка. Если вы хотите помочь исправить это, написание неисправной спецификации будет очень приветствуется :)
У меня была аналогичная ситуация, когда я интегрировал свое приложение с платформу SSO компании. Я решил это сделать, чтобы на сайте работал Selenium, добавив тег @javascript к сценарию.
@javascript в настоящее время является рабочим решением, хотя в разработке также находится механизированный драйвер, который использует стоечный тест до момента, когда вы нажимаете внешний запрос.
Это немного новшество, и я еще не пробовал его, но я намерен изменить свои внешние тесты @javascript на его использование (с тегами @live или @external или подобными) для повышения скорости.