sous-domaine, en utilisant le test concombre ou capybara et rspec
-
27-10-2019 - |
Question
Une partie du développement de mon projet a été done.Our société me demande d'écrire des cas de test de concombre pour le code développé et pour le développement désormais ainsi. Le fichier itinéraires ont deux sous-domaines pour admin et hosts.Devise est également utilisé.
Maintenant, j'installé le concombre et ont écrit le premier scénario pour la première histoire lorsque les terres de l'utilisateur non registerd sur la page d'accueil, pénètre un e-mail valide et est redirigé vers la page suivante page..the n'a pas champ de mot de passe.
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.
Le problème est dans mon dossier de routes, j'ai,
constraints :subdomain => ADMIN_SUBDOMAIN do
....
root :to => admin#index
end
constraints :subdomain => HOST do
...
root :to => home#index.
end
Maintenant, comment puis-je spécifier le fichier path.rb pour rechercher les root_path dans ce sous-domaine spécifique. Theres pas root_path écrite en dehors des contraintes de sous-domaines. Ceci est ma première fois avec l'essai. Je suis vraiment coincé sur this.Any aide est très apprécié.
Je viens de me savoir de quelqu'un que cela peut être mis en œuvre à l'aide capybara.If donc, pourriez-vous s'il vous plaît donner une petite idée à ce sujet.
La solution
Chassé il était assez simple.Capybara fournit une méthode default_host. Donc, je voulais juste mentionner,
When I visit subomain sub
Et puis le 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
Mise à jour:
default_host n'est pas censé être utilisé comme il est pas mentionné dans la documentation. essayez plutôt d'utiliser le chemin absolu en visite.
Given /^I visit subdomain (.*)$/ do |site_domain|
site_domain = "http://sub.example.com" if site_domain == "admin"
visit site_domain
end