2012-04-17 6 views
7

私はサブドメインに大きく依存しているアプリケーションを開発しています。アプリケーションを管理するバックエンドになるアプリケーション(モジュール)に組み込まれたアプリケーションを持っています。それをカンと名づけましょう。Rails:RSpecでサブドメインをテストするには

私は私のルートファイルにこのコードを持っている:

constraints :subdomain => "kong" do 
    scope :module => "kong", :as => "kong" do 
    resources :clients 
    end 
end 

私は、次のようなものを書くとき、それはサブドメインからのみのサブドメインから取り出すように、どのように私はこのルートをテストすることができます。

get :index 
テストユニットで

答えて

5

私はサブドメインから来てrequest.hostを設定するには、このようなものを使用:

def get_sub(sub = "one") 
    @request.host = "#{sub}.local.me" 
end 

私は個人的にそれをspec_helper.rbファイルに置き、必要に応じて参照します。あなたのために

は、これらのテストでは、あなたは私が through google

+7

は、なぜあなたは、このメソッドを呼び出した後に発見され、おそらく

before :each do get_sub("kong") end 
このジョーカーは、あまりにも答えを持っている

よう"kong"に等しくなるようにsubを設定しています'get_sub'は明らかに値を設定していますか?また、なぜそれを短縮する? 'set_subdomain'または' stub_subdomain'はこのメソッドの優れた名前です。 –

+2

完璧な後天世界では、私はそれを 'set_subdomain'と呼んでいましたが、ペタニックを除いて、答えはまだ動作しています。 OPは彼が選んだものに方法を変えることができる。 – pjammer

+5

これはルーティング仕様では動作しません。 '@ request'はゼロになります – lulalala