Mar*_*oot 5 rspec ruby-on-rails ruby-on-rails-3.2
我有一个 Rails 应用程序,里面有一个可安装的引擎。我目前正在为可安装引擎设置 rspec 测试。这些需要从父应用程序访问模型和助手。我知道这里存在一些耦合,但这不是可重用的组件,并且引擎用于提供与父应用程序分开的附加功能。
我可以在从命令创建的虚拟应用程序中运行这些测试rails new plugin,但这无法访问父应用程序模型。
如何配置我的规范助手,以便它从父应用程序加载模型和配置设置?理想情况下,这将包括父应用程序的spec_helper.rb.
我相信我应该能够使用我的父应用程序而不是虚拟应用程序,但到目前为止尚未成功。当尝试运行我的规范时,我被迫将父应用程序中的所有 gem 包含到我的引擎中Gemfile,并在父应用程序中包含其他已安装引擎的 s 。NameError
我们从孩子的spec_helper中像这样加载父spec_helper:
path = Gem.loaded_specs.select {|k,_| k == 'parent-gem-name'}
.first.last.full_gem_path
file = File.join(path, 'spec', 'spec_helper.rb')
instance_eval File.read(file), __FILE__, __LINE_
Run Code Online (Sandbox Code Playgroud)