【发布时间】:2015-03-01 18:39:20
【问题描述】:
我有一个 Rails 应用程序,我正在尝试将代码拆分为多个引擎。
主应用程序拥有一个主控制器 - Api::ApplicationController,引擎中的所有控制器都继承自该控制器,例如:
Api::Products::ProductsController < Api::ApplicationController
我使用 RSpec 进行测试。
当我运行应用程序时,一切正常,但是当我尝试运行引擎的 Rspecs 时,我得到一个错误:
uninitialized constant Api::ApplicationController
如您所知,引擎无法与应用程序分开工作,因此我尝试在规范 (products_controller_spec.rb) 中存根 Api::ApplicationController,但它甚至在开始运行规范之前就失败了。
我想也许我应该以不同的方式实现它,并在某处注入 ApplicationController 功能而不是从它继承,但我不知道在哪里。
我考虑的另一件事是将引擎的规范注入托管应用程序并从那里运行它,但它似乎不起作用,并且无法以这种方式调试规范。
如何测试它?
【问题讨论】:
标签: ruby-on-rails ruby rspec