我是RSpec的新手,我不知道如何测试以下内容:
在我的应用程序控制器中(在Rails 3应用程序中),我在before过滤器中设置了区域设置,如下所示
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"。
我如何测试这个?
我会这样做:
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参见这个问题: