sottodominio, test utilizzando cetriolo o capibara e rspec
-
27-10-2019 - |
Domanda
Parte dello sviluppo del mio progetto è stata completata l'azienda mi chiede di scrivere casi di test di cetriolo per il codice sviluppato e anche per lo sviluppo d'ora in poi. Il file delle rotte ha due sottodomini per l'amministratore e gli host. Anche il dispositivo è in uso.
Ora ho installato cucumber e ho scritto il primo scenario per il la prima storia quando l'utente non registrato arriva sulla home page, entra un'e-mail valida e viene reindirizzato alla pagina successiva..la pagina ha no campo password.
Scenario: Non registered user lands on beta home page.
Given: I am on the homepage
When: I enter valid email with "bahubalian...@gmail.com".
Then: I should be redirected to request invitation page.
Il problema è nel mio file dei percorsi, sì,
constraints :subdomain => ADMIN_SUBDOMAIN do
....
root :to => admin#index
end
constraints :subdomain => HOST do
...
root :to => home#index.
end
Ora come faccio a specificare il file path.rb in cui cercare root_path in quello specifico sottodominio. Non esiste root_path scritto al di fuori dei vincoli del sottodominio. Questa è la mia prima volta con i test. Sono davvero bloccato su questo e qualsiasi aiuto è profondamente apprezzato.
Ho appena saputo da qualcuno che questo può essere implementato utilizzando capibara, in tal caso, potresti darmi una piccola idea al riguardo.
Soluzione
Si è scoperto che era piuttosto semplice.Capybara fornisce un metodo default_host. Quindi dovevo solo menzionare,
When I visit subomain sub
E poi il webstep
Given /^I visit subdomain (.*)$/ do |site_domain|
site_domain = "http://sub.example.com" if site_domain == "admin"
Capybara.default_host = site_domain
visit "/"
end
Aggiorna:
default_host non dovrebbe essere usato perché non è menzionato nella documentazione. Prova invece a utilizzare il percorso assoluto nella visita.
Given /^I visit subdomain (.*)$/ do |site_domain|
site_domain = "http://sub.example.com" if site_domain == "admin"
visit site_domain
end