4

私のプロジェクトの開発の一部が完了しました.当社は、開発したコードと今後の開発のためにキュウリのテストケースを書くように私に依頼しました. routes ファイルには、admin と hosts の 2 つのサブドメインがあります。Devise も使用されています。

今、私はきゅうりをインストールし、登録されていないユーザーがホームページにアクセスし、有効な電子メールを入力して次のページにリダイレクトされたときの最初のストーリーの最初のシナリオを書きました..ページにはパスワードフィールドがありません.

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. 

問題はルートファイルにあります。

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

その特定のサブドメインで root_path を探すために path.rb ファイルを指定するにはどうすればよいですか。サブドメインの制約の外側に root_path が記述されていません。テストは今回が初めてです。私は本当にこれにこだわっています.どんな助けでも大歓迎です.

これがカピバラを使って実装できることを誰かから知りました. もしそうなら、それについて少し教えてください.

4

1 に答える 1

6

非常に単純であることが判明しました。Capybara は default_host メソッドを提供します。だから私はただ言及する必要がありました、

When I visit subomain sub

そして、ウェブステップ


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

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

  Capybara.default_host = site_domain
  visit "/"
end

アップデート:

default_host は、ドキュメントに記載されていないため、使用することは想定されていません。代わりに、visit で絶対パスを使用してみてください。

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

  site_domain = "http://sub.example.com" if site_domain == "admin"
  visit site_domain
end
于 2011-09-13T09:30:12.460 に答える