无法通过:locale到Capybara的方法访问

时间:2012-03-05 10:06:22

标签: ruby-on-rails internationalization capybara

我的Capybaras测试仅适用于默认语言环境,而不适用于指定的语言环境。

describe "How it works" do
  it "should have the content 'how it works'" do
    visit how_it_works_url(:locale => :en)
    page.should have_content('How it works')      
  end
  it "should have the content 'wie es geht'" do
    visit how_it_works_url(:locale => :de)
    page.should have_content('Wie es geht')      
  end
end  

如果default_locale为'en',则第一个测试通过,如果是'de',则第二个测试通过。

路线都没有翻译(我使用gem'trail-translate-routes'),也没有内容。

1 个答案:

答案 0 :(得分:2)

也许这会有所帮助:

使用capybara

时路径无法正常工作

对于rspec,您可以将此代码段放在spec/support/locale.rb中,例如:

# workaround, to set default locale for ALL spec
class ActionView::TestCase::TestController
  def default_url_options(options={})
    { :locale => I18n.default_locale }
  end
end

class ActionDispatch::Routing::RouteSet
  def default_url_options(options={})
    { :locale => I18n.default_locale }
  end
end

查看here了解更多详情。