2015-01-22 4 views
0

В моем приложении rails я использую gem i18n_spec для добавления тестов rspec, которые проверяют правильность моих файлов конфигурации i18n.Rails i18n spec не работает

Спецификация Файл

require 'spec_helper.rb' 
require 'i18n-spec/tasks' 

Dir.glob('config/locales/*.yml') do |locale_file| 
    describe "#{locale_file}" do 
    it { subject.should be_parseable } 

приводит к ошибкам

../gems/i18n-spec-0.6.0/lib/i18n-spec/tasks.rb:5:in `<top (required)>': undefined method `namespace' for main:Object (NoMethodError) 
    from ../gems/backports-3.3.3/lib/backports/tools.rb:328:in `require' 
    from ../gems/backports-3.3.3/lib/backports/tools.rb:328:in `require_with_backports' 
    from ../gems/activesupport-3.2.21/lib/active_support/dependencies.rb:251:in `block in require' 
    from ../gems/activesupport-3.2.21/lib/active_support/dependencies.rb:236:in `load_dependency' 
    from ../gems/activesupport-3.2.21/lib/active_support/dependencies.rb:251:in `require' 
    from ../spec/selftest/i18n_spec.rb:3:in `<top (required)>' 

ответ

2

Почему вы хотите, чтобы проверить, если они распознаваем? Если вы заявляете любой ключ I18n в спецификации устройства/функции Rails загрузит ваши файлы I18n и выбросит синтаксическую ошибку, если файлы yml не будут обрабатываться!

вы получите утверждения, как так:

within(".mod-header .login") { click_link I18n.t('public.menu.login') } 
    find("#main-container h1").should have_content I18n.t('pages.login.title') 

Этот путь Rails будет загружать и анализировать ваши YML файлы. И если есть какие-либо ошибки, вы найдете их в своем тестовом выпуске!

И ошибки, как это:

<Psych::SyntaxError: (your_project_path/config/locales/nl.yml): mapping values are not allowed in this context at line <num> column <num>> 

или

<Psych::SyntaxError: (your_project_path/config/locales/nl.yml): did not find expected key while parsing a block mapping at <num> column <num>>