Mam aplikację, która korzysta z subdomen do przełączania baz danych (multi-tenancy). Próbuję użyć Capybary do testowania integracji i naprawdę bardzo zależy od subdomen.Kapibara z subdomenami - default_host
Rozumiem, że ustawienie Capybara.default_host=
na coś spowoduje, że wszystkie moje żądania będą pochodzić od tego hosta. Wydaje się, że tak nie jest. W dokumencie this post autor zaleca odwiedzenie jawnego adresu URL z hostem, ale staje się to nieco denerwujące, gdy nawiguję w dowolnym miejscu. Chciałbym ustawić hosta, a następnie móc korzystać z moich ścieżek rails zgodnie z oczekiwaniami. Nie wiem, co robię źle, ale oto co próbowałem:
# 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
Daje wyjście:
Capybara.default_host: http://app.mydomain.com
some_app_url: http://www.example.com/some_path
Co robię źle? default_host
wydaje się nic nie robić. Jak już mówiłem, nie chcę mówić: visit(Capybara.default_host + some_app_path)
, ponieważ za każdym razem jest to trochę denerwujące. Dlaczego jeszcze istnieje ta opcja default_host?
Może być pomocny dla kogoś [moja odpowiedź to pytanie] (http://stackoverflow.com/a/18476731/895789) –