5

私はRSpecが初めてで、以下をテストする方法がわかりません:

アプリケーション コントローラー (Rails 3 アプリ内) で、次のように、フィルター前にロケールを設定します。

def set_locale
  I18n.locale = ["en", Setting.locale, get_locale_from_subdomain].compact.last
end

def get_locale_from_subdomain
  locale = request.subdomain.split('.').first
  return nil unless LOCALES.include? locale
  locale
end

基本的に、'en.example.com' と 'example.com' は "en" ロケールを持ち、'fr.example.com' はロケールを "fr" に設定します。

どうすればこれをテストできますか?

4

1 に答える 1

4

私はこのようなことをします:

I18n.available_locales.each do |locale|
  request.host = "#{locale}.example.com"
  get :index
  I18n.locale.should == locale
end

ここで説明されている匿名コントローラーを使用する場合:

https://www.relishapp.com/rspec/rspec-rails/v/2-4/docs/controller-specs/anonymous-controller

この質問も参照してください。

Rails rspec セットサブドメイン

于 2011-09-15T19:40:07.033 に答える