如何在Rails 5中要求app / lib文件夹中的模块到rspec

时间:2017-10-24 07:07:56

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

我将模块移到了

app/lib/parsers

文件夹中。

模型类响应模块方法,但是当我尝试

rspec
I have issue

Failure/Error: include MainModule::Submodule

NameError:
uninitialized constant ModelName::MainModule

module in lib/parsers looks like this

Module Parsers
  Module Parser1
    def foo
    end
end
  Module Parser2

   def bar
   end
 end
end

第一个模型包括第一个解析器

Class Model1 < ApplicationRecord
  include Parsers::Parser1
end

和第二个以同样的方式 在Rspec中要求模块的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

  

需要模块的最佳方法是什么

使用rails的自动加载机制。将您的Parsers::Parser1置于app/lib/parsers/parser1.rbParsers::Parser2app/lib/parsers/parser2.rb。了解模块的全名如何反映存储的位置?这就是rails能够找到它的方式。

或者您可以明确要求该文件

# my_spec.rb
require_dependency Rails.root.join('app', 'lib', 'parsers')

RSpec.describe ...