Шаг 1. Настройте локальный DNS.
http://intridea.com/2010/6/2/using-bind-locally-on-os-x-for-easy-access-to-subdomains?blog=company
Шаг 2. Используйте драйвер Capybara, который поддерживает субдомены.
Либо Селен, либо Акефалос справятся с задачей.
Создайте spec / support / custom_env и поместите в него этот контент:
#Capybara.default_driver = :selenium
Capybara.default_driver = :akephalos
Capybara.app_host = 'http://davinci.testing.dev:8082'
Capybara.run_server = false
Capybara.server_port = 8082
Выберите драйвер для капибары, который вы хотите, Selenium или akpehalos, или что хотите, кроме Rack-test (по умолчанию)
Разумеется, укажите домен и порт по вашему выбору.
Шаг 3:
Добавьте блок config.before в ваш spec / spec_helper.rb
RSpec.configure do | config |
config.before: каждый делает
Capybara.app_host = "http://davinci.testing.dev:8082"
конец
конец
Разумеется, укажите домен и порт по вашему выбору.
Шаг 4:
Добавить помощника для переключения поддоменов.
Spec / прием / поддержка / helpers.rb
def switch_to_subdomain(subdomain)
Capybara.app_host = "http://#{subdomain}.davinci.testing.dev:8082"
end
Укажите домен и порт по вашему выбору, конечно.
Шаг 5. Используйте вспомогательный метод в вашей спецификации.
Теперь каждый раз, когда вы хотите изменить поддомен, вы делаете:
scenario "Show school" do
school = School.make!(:name=>"perico")
switch_to_subdomain(school.name)
visit("/")
page.has_content?("Welcome to perico")
end