5 Stimmen

Testen mit RSpec: Einstellung des Gebietsschemas basierend auf der ersten Subdomäne

Ich bin neu in RSpec, und ich kann nicht herausfinden, wie die folgenden zu testen:

In meinem Anwendungscontroller (in einer Rails 3-Applikation) setze ich das Gebietsschema in einem Before-Filter, etwa so

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

So haben 'en.example.com' und 'example.com' grundsätzlich das Gebietsschema "en", während 'fr.example.com' das Gebietsschema "fr" hat.

Wie kann ich das testen?

4voto

Jared Punkte 2645

Ich würde etwa so vorgehen:

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

Mit einem anonymen Controller wie hier beschrieben:

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

Siehe auch diese Frage:

Rails rspec set subdomain

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X