Desidero accedere a user1.application.local.dev/panel/new da una specifica bistecca.Rails3: Come visitare un sottodominio in una specifica bistecca (rspec) utilizzando Capybara
Come faccio?
Desidero accedere a user1.application.local.dev/panel/new da una specifica bistecca.Rails3: Come visitare un sottodominio in una specifica bistecca (rspec) utilizzando Capybara
Come faccio?
Passaggio 1. Impostare un DNS locale.
http://intridea.com/2010/6/2/using-bind-locally-on-os-x-for-easy-access-to-subdomains?blog=company
Fase 2. Utilizzare un driver che supportano Capybara sottodomini.
O selenio o Akefalos farebbero il trucco.
Crea spec/supporto/custom_env e mettere questi contenuti in esso:
#Capybara.default_driver = :selenium
Capybara.default_driver = :akephalos
Capybara.app_host = 'http://davinci.testing.dev:8082'
Capybara.run_server = false
Capybara.server_port = 8082
Selezionare il driver capibara che si desidera, sia selenio o akpehalos o quello che volete, tranne cremagliera-test (default)
Metti il dominio e la porta di tua scelta, ovviamente.
Fase 3:
Aggiungere il blocco config.before al vostro spec/spec_helper.rb
RSpec.configure fare | config |
config.before: ogni do Capybara.app_host = "http://davinci.testing.dev:8082" fine
fine
Mettere il dominio e la porta di voi scelta, naturalmente.
Fase 4:
Aggiungi un aiutante per passare sottodomini.
Spec/accettazione/supporto/helpers.rb
def switch_to_subdomain(subdomain)
Capybara.app_host = "http://#{subdomain}.davinci.testing.dev:8082"
end
Metti il dominio e la porta di voi scelta, naturalmente.
Passaggio 5. Utilizzare il metodo di supporto nelle specifiche.
Ora, ogni volta che si desidera cambiare di sottodominio che fate:
scenario "Show school" do
school = School.make!(:name=>"perico")
switch_to_subdomain(school.name)
visit("/")
page.has_content?("Welcome to perico")
end
Questa è una domanda di capibara. Impostare default_host
quando necessario
Capybara.default_host = 'sub.domain.com'
Questo funziona solo se non si utilizza cremagliera-test. Funziona con selenio e aftalco. – Nerian
la risposta è stata davvero utile! –