Frage

Ein Teil der Entwicklung meines Projekts wurde durchgeführt Das Unternehmen bittet mich, Gurkentestfälle für den entwickelten Code zu schreiben und auch für die weitere Entwicklung. Die Routendatei enthält zwei Subdomains für admin und hosts.Devise ist ebenfalls verwendet werden.

Jetzt habe ich Gurke installiert und das erste Szenario für die geschrieben Die erste Geschichte, in der der nicht registrierte Benutzer auf der Startseite landet, wird eingegeben eine gültige E-Mail und wird zur nächsten Seite weitergeleitet. Die Seite hat keine Passwortfeld.

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. 

Das Problem liegt in meiner Routendatei,

constraints :subdomain => ADMIN_SUBDOMAIN do 
  .... 
  root :to => admin#index 
end 
constraints :subdomain => HOST do 
  ... 
  root :to => home#index. 
end 

Wie gebe ich nun die Datei path.rb an, in der nach dem root_path gesucht werden soll? diese spezifische Subdomain. Es gibt keinen root_path, der außerhalb der Subdomain-Einschränkungen geschrieben wurde. Dies ist mein erstes Mal mit Tests. Ich bin wirklich festgefahren. Jede Hilfe wird sehr geschätzt.

Ich habe gerade von jemandem erfahren, dass dies mit capybara implementiert werden kann. Wenn ja, können Sie bitte eine kleine Vorstellung davon geben.

War es hilfreich?

Lösung

Es stellte sich heraus, dass es ziemlich einfach war. Therapiebara bietet eine default_host-Methode. Also musste ich nur erwähnen,

When I visit subomain sub

Und dann der 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

Update:

default_host sollte nicht verwendet werden, da dies in den Dokumenten nicht erwähnt wird. Versuchen Sie stattdessen, beim Besuch den absoluten Pfad zu verwenden.

Given /^I visit subdomain (.*)$/ do |site_domain|

  site_domain = "http://sub.example.com" if site_domain == "admin"
  visit site_domain
end

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top