RSPEC 无法识别我的模块或类

La-*_*eja 1 rspec module ruby-2.0 ruby-on-rails-4

lib/A/B/C.rb我的 Rails 4 程序中,我有一个类如下:

module A
    module B
        class C
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

我想测试这个类,并尝试在spec/lib/A/B/C_spec.rb. 文件内容如下:

require 'spec_helper'

describe A::B::C do
end
Run Code Online (Sandbox Code Playgroud)

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

{path}/spec/lib/A/B/C.rb:3:in `<top (required)>': uninitialized constant A (NameError)
Run Code Online (Sandbox Code Playgroud)

根据其他帖子,我尝试通过添加config.autoload_paths << Rails.root.join("lib")和类似来解决问题config/application.rb。但它似乎不起作用。如何让测试识别模块和类?

La-*_*eja 6

我自己解决了这个问题。具体方法如下:

(1) 在 中spec/lib/A/B/C_spec.rb,我替换spec_helperrails_helper

(2) 我将此行添加到config/application.rb

config.autoload_paths << Rails.root.join("lib")
Run Code Online (Sandbox Code Playgroud)