Ich möchte auf user1.application.local.dev/panel/new von einem Steak spec zugreifen.Rails3: Wie besuche ich eine Subdomain in einem Steak (rspec) spec mit Capybara
Wie mache ich das?
Ich möchte auf user1.application.local.dev/panel/new von einem Steak spec zugreifen.Rails3: Wie besuche ich eine Subdomain in einem Steak (rspec) spec mit Capybara
Wie mache ich das?
Schritt 1 einen lokalen DNS einrichten.
http://intridea.com/2010/6/2/using-bind-locally-on-os-x-for-easy-access-to-subdomains?blog=company
Schritt 2. Verwenden Sie ein Capybara-Treiber, der Sub-Domains unterstützen.
Entweder Selen oder Akephalos würde den Trick tun.
erstellen spec/support/custom_env und setzen diesen Inhalt drin:
#Capybara.default_driver = :selenium
Capybara.default_driver = :akephalos
Capybara.app_host = 'http://davinci.testing.dev:8082'
Capybara.run_server = false
Capybara.server_port = 8082
Wählen Sie das Capybara-Treiber, die Sie wollen, entweder Selen oder akpehalos oder was auch immer Sie wollen, außer Rack-Test (Standard)
Setzen Sie natürlich die Domain und den Port Ihrer Wahl.
Schritt 3:
Fügen Sie den config.before Block auf Ihre spec/spec_helper.rb
RSpec.configure tun config |
config.before: jeder tun Capybara.app_host = "http://davinci.testing.dev:8082" Ende
Ende
die Domäne und den Hafen von Ihnen Wahl Put, natürlich.
Schritt 4:
einen Helfer hinzufügen Subdomains zu wechseln.
Spec/Annahme/support/helpers.rb
def switch_to_subdomain(subdomain)
Capybara.app_host = "http://#{subdomain}.davinci.testing.dev:8082"
end
Setzen Sie die Domäne und den Hafen von Ihnen Wahl, natürlich.
Schritt 5. Verwenden Sie die Hilfsmethode in Ihrer Spezifikation.
Jetzt kann jeder Zeit wollen Sie von Sub-Domain ändern, die Sie tun:
scenario "Show school" do
school = School.make!(:name=>"perico")
switch_to_subdomain(school.name)
visit("/")
page.has_content?("Welcome to perico")
end
Dies ist eine Capybara Frage. Stellen Sie den default_host
wenn Sie es brauchen
Capybara.default_host = 'sub.domain.com'
Dies funktioniert nur, wenn Sie nicht rack-Test. Es funktioniert mit Selenium und Akephalos. – Nerian
die Antwort war wirklich hilfreich! –