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

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

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 `': uninitialized constant Facility (NameError)

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

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

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

来源: 当尝试运行rspec时,我得到未初始化的常量 。

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

 require 'spec_helper' 

如果您使用’rspec-rails’gem,那么运行

rails g rspec:install

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

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

require 'spec_helper'

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

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

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