为什么我的导轨规格不会运行?

时间:2012-10-18 16:08:16

标签: ruby-on-rails rspec

当我尝试运行我的规范时,我得到一个未初始化的常量错误。我的规格看起来像这样:

describe Facility do 
  it { should have_many(:units) }
  it { should have_many(:facilities_users) }
  it { should have_many(:administrators) }
  it { should have_many(:facility_employees) }
end

错误是: facility_spec.rb:1:in `<top (required)>': uninitialized constant Facility (NameError)

我当然有一个Facility模型,所以我不确定为什么会这样。

4 个答案:

答案 0 :(得分:2)

您应该尝试运行rake spec而不是rspec spec。 但两者都可行。

如果不能正常工作,请尝试bundle exec rspec specbundle exec rake spec

来源:When trying to run rspec I get uninitialized constant

答案 1 :(得分:0)

在文件顶部添加以下内容:

require 'spec_helper'

答案 2 :(得分:0)

如果您使用'rspec-rails'宝石,请运行

rails g rspec:install

这将创建spec/spec_helper.rb文件(如果您没有使用ActiveRecord,则应编辑它,以便正确运行规范设置)。

之后,确保您需要指定文件顶部的帮助程序:

require 'spec_helper'

如果这对您不起作用,可能会出现更多问题:

  1. 您正在尝试在lib /目录下测试文件。在这种情况下, 确保此文件已加载环境 (config / application.rb - &gt; autoload_paths)或明确要求它。
  2. 该常数实际上不存在。它可能在命名空间内,也可能只是一个错字。

答案 3 :(得分:0)

在spec文件中,要求定义Facility类的文件。