Я пытаюсь написать несколько интеграционных тестов rspec, чтобы проверить правильность маршрутизации моих условных маршрутов, но у меня куча проблем.
В маршрутах .rb:
root :to => "error#ie6", :constraints => {:user_agent => /MSIE 6/}
root :to => "protocol_sets#index", :constraints => UserRoleConstraint.new(/doctor/i)
root :to => "refill_requests#create", :constraints => UserRoleConstraint.new(/member/i)
root :to => "refill_requests#create", :constraints => {:subdomain => "demo"}
root :to => "site#index"
В спецификации / запросы / homepage_routing_spec.rb
require 'spec_helper'
describe "User Visits Homepage" do
describe "Routings to homepage" do
it "routes / to site#index when no session information exists" do
visit root_path
end
end
end
При попытке запустить тест я получаю следующую ошибку.
Failures:
1) User Visits Homepage Routings to homepage routes / to site#index when no session information exists
Failure/Error: visit root_path
NoMethodError:
undefined method `match' for nil:NilClass
# :10:in `synchronize'
# ./spec/requests/homepage_routings_spec.rb:6:in `block (3 levels) in '
Finished in 0.08088 seconds
1 example, 1 failure
Failed examples:
rspec ./spec/requests/homepage_routings_spec.rb:5 # User Visits Homepage Routings to homepage routes / to site#index when no session information exists
От Googling вокруг, я предполагаю, что может быть проблема с тем, как rspec / capybara обрабатывают условные маршруты.
Есть ли способ проверить ограничения на маршрутах с помощью rspec и capybara?