Rails + Capycabra + poltergeist NameError:未初始化的常量I18n

时间:2014-09-16 10:40:05

标签: ruby-on-rails ruby-on-rails-4 rspec capybara phantomjs

我刚刚开始玩Capycabra,执行完第一次Capy测试后,它失败并出现错误

Failure/Error: expect(page).to have_content I18n.t("form_input.item.item_s")
 NameError:
   uninitialized constant I18n

我的考试

#spec/features/test_spec.rb

require 'spec_helper'

describe 'accessibility of webpage' do
  it 'should access web page' do
    visit '/item/new'
    expect(page).to have_content I18n.t("form_input.item.item_s")
  end
end

我尝试明确包含I18n模块,如require 'i18n',但测试失败,结果为

 Failure/Error: expect(page).to have_content I18n.t("form_input.item.item_s")
       expected #has_content?("translation missing: en.form_input.item.item_s") to return true, got false

我的spec_helper.rb文件

require 'capybara'
require 'capybara/dsl'
require 'capybara/poltergeist'

Capybara.javascript_driver = :poltergeist

RSpec.configure do |config|
  config.include Capybara::DSL
end

完整版spec_helper:http://pastebin.com/qkANfu39

显然我需要将模块I18n包含在spec_helper中,但不知道该怎么做。

我需要你们的帮助:)

1 个答案:

答案 0 :(得分:3)

通过将'rails_helper'文件包含在测试文件中来实现它.Capy测试的最终版本:

#spec/features/test_spec.rb

require 'rails_helper'
require 'spec_helper'

describe 'accessibility of webpage' do
  it 'should access web page' do
    visit '/item/new'
    expect(page).to have_content I18n.t("form_input.item.item_s")
  end
end