ruby-on-rails - 无法通过 :locale to Capybara's method visit

标签 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 'rails-translate-routes')。

最佳答案

也许这有帮助:

使用 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了解更多详情。

关于ruby-on-rails - 无法通过 :locale to Capybara's method visit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9564797/

相关文章:

ruby-on-rails - 无法加载此类文件 -- mysql12 (LoadError)

html - 风格化文本以针对不同的语言使用不同的字体?

ruby - 如何使用 Capybara 和 Ruby 切换 Frame?

ruby - 什么能防止 capybara / Selenium 悬停在可见元素上?

ruby-on-rails - Rails 模型中的字段 "overload"的最佳方法是什么?

ruby-on-rails - OmniAuth 路由错误,没有路由匹配

javascript - Pjax 并在特定页面上重新加载 JavaScript

ruby-on-rails - 如何调试Rails I18N查找?

用于制作 slug 的 PHP 函数(URL 字符串)

ruby-on-rails-3 - Capybara Acceptance DSL 与 MiniTest::Spec?