【问题标题】:uninitialized constant (NameError)未初始化的常量 (NameError)
【发布时间】:2015-01-19 09:12:09
【问题描述】:

我在这里看到了一些类似的问题,但没有一个给定的解决方案有效。我像往常一样安装了 rspec/factorygirl,但我遇到了一些我无法理解的问题。 rspec 好像看不到我的模型。

Gefile

group :development, :test do
  gem 'rspec-rails', '~> 3.0'
  gem 'factory_girl_rails'
  gem 'database_cleaner'
  gem 'faker'
end

group :test do
  gem 'guard-rspec'
  gem 'capybara'
end

我已经运行 rails generate rspec:install 来生成 spec/ dir 文件结构(因此我的 spec_helper 和 rails_helper 文件包含环境要求等的正确行)

spec/models/list_spec.rb

require 'spec_helper'

describe List do
  before(:each) do
    @list = FactoryGirl.build(:list)
  end

  it 'is invalid without name' do
    @list.title = nil
    expect(@list).to_not be_valid
  end
end

spec_helper.rb

https://gist.github.com/mbajur/68e96ab77f43d50a73cf

rails_helper.rb

https://gist.github.com/mbajur/677c9936347be8b18c7d

list_factory.rb

https://gist.github.com/mbajur/49668f280891fa80f288

当我运行rspec 时,它会在list_spec.rb 文件的第3 行给我uninitialized constant List (NameError)

【问题讨论】:

  • 您的spec_helper.rb 中有什么内容?
  • 我已将其添加到原始问题中,请查看
  • 只需将describe List do ... 更改为describe 'List' do ...
  • 嗯,这部分解决了我的问题,但我的设置仍然存在问题。现在我的规格看不到 FactoryGirl(未初始化的常量 FactoryGirl)
  • 因为你不在 require factory_girl_railsspec_helperrails_helper 中。

标签: ruby-on-rails ruby rspec


【解决方案1】:

describe List do ... 更改为 describe 'List' do ... 并确保在帮助文件中需要所有需要的库并留下一个 _helper.rb

【讨论】:

    【解决方案2】:

    问题是因为我在所有规格中都需要spec_helper,而我应该需要rails_helper

    因此,每个规范文件都应以以下行开头:

    require 'rails_helper`
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      • 2016-06-12
      • 2015-03-01
      • 2018-06-26
      相关资源
      最近更新 更多