Capybara с субдоменами - default_host

У меня есть приложение, которое использует субдомены для переключения баз данных (мультитенантность). Я пытаюсь использовать Capybara для тестирования интеграции, и он действительно сильно зависит от поддоменов.

Насколько я понял, установка Capybara.default_host = на что-то заставит все мои запросы исходить с этого хоста. Похоже, это не так. В этой публикации автор рекомендует просто посещать явный URL с хостом, но это становится немного раздражающим, если я перемещаюсь повсюду. Я хотел бы просто установить хост, а затем иметь возможность использовать мои рельсовые пути, как ожидалось. Не уверен, что делаю неправильно, но вот что я пробовал:

# spec_helper.rb
RSpec.configure do |config|
  config.before(:each, :type => :request) do
    Capybara.default_host = 'http://app.mydomain.com'
  end
end

# in some_integration_spec.rb
before do
  puts "Capybara.default_host: #{Capybara.default_host}"
  puts "some_app_url: #{some_app_url}"
end

Это дает результат:

Capybara.default_host: http://app.mydomain.com
some_app_url: http://www.example.com/some_path

Что я делаю не так? default_host , похоже, ничего не делает. Как я уже сказал, я не хочу говорить visit (Capybara.default_host + some_app_path) , поскольку это каждый раз немного раздражает. Почему еще существует этот параметр default_host?

47
задан Rimian 17 July 2012 в 01:21
поделиться