未初始化的常量(NameError)

时间:2014-11-21 09:11:18

标签: ruby-on-rails ruby rspec

我在SO上看到的类似问题很少,但是没有一个给定的解决方案有效。我像往常一样安装了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文件包含环境要求等的正确行。)

规格/模型/ 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时,它会在uninitialized constant List (NameError)文件的第3行提供list_spec.rb

2 个答案:

答案 0 :(得分:1)

describe List do ...更改为describe 'List' do ...,并确保在helper文件中需要所有需要的lib并留下_helper.rb

答案 1 :(得分:0)

问题是由于我在所有规格中都需要spec_helper这一事实,而我需要rails_helper

因此,每个spec文件应从以下行开始:

require 'rails_helper`