RSpec不加载我的类,即使它在Rails控制台中加载

时间:2016-04-19 14:54:43

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

我在app/models/parser内有一个名为data.rb的课程,内容为:

class Parser::Data 
  def method1
  end
end

此时没什么好看的。我试图在实现太多之前为它编写测试,只是为Rails做了默认的RSpec安装。

我的RSpec文件位于spec/models/parser/data_spec.rb并且到目前为止非常基本:

require 'spec_helper.rb'

describe Parser::Data do
  let(:parser) { Parser::Data.new }
end

当我运行测试时,我收到此错误:

spec/models/parser/data_spec.rb:3:in `<top (required)>': uninitialized constant Parser (NameError)

我尝试将module Parser类放在Data类的同一个目录app/models/parser中,我也尝试将它移到lib/parser做同样的模块包装类,并且已将lib/parser添加到application.rb中的自动加载中,但到目前为止还没有任何效果。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

require 'rails_helper'代替spec_helper。仅要求spec_helper为我重现该问题,并要求rails_helper修复它。有关spec_helperrails_helper(包括效果影响)的更多信息,请访问:How is spec/rails_helper.rb different from spec/spec_helper.rb? Do I need it?

我通过使用bundle exec rspec运行RSpec来重现此问题。如果我用bin/rspec运行RSpec(这是一个由spring-commands-rspec gem生成的binstub),它不关心我需要哪个帮助文件。我猜春天的负荷更加急切。