覆盖ApplicationController方法的正确位置

时间:2018-11-15 00:53:15

标签: ruby-on-rails rspec3

针对我的应用程序运行测试套件时,我需要重写控制器方法。

我必须将替代代码放入我希望防止的应用代码中。

class ApplicationController
end

if ENV['LAYOUT'] == 'test'
  class ApplicationController
    layout: "test_layout"
  end
end

ApplicationController不存在,我无法在任何规范助手中进行覆盖。加载顺序为:

  1. spec_helper
  2. 配置/应用程序
  3. rails_helper
  4. application_controller

因此,我在我的spec_helper中设置了ENV变量,如果设置了ENV,则重新定义ApplicationController。这似乎很乱,我宁愿从/ spec目录覆盖ApplicationController。

我有个更好的地方重写/specs目录中的ApplicationController吗?

0 个答案:

没有答案