针对我的应用程序运行测试套件时,我需要重写控制器方法。
我必须将替代代码放入我希望防止的应用代码中。
class ApplicationController
end
if ENV['LAYOUT'] == 'test'
class ApplicationController
layout: "test_layout"
end
end
ApplicationController不存在,我无法在任何规范助手中进行覆盖。加载顺序为:
因此,我在我的spec_helper中设置了ENV变量,如果设置了ENV,则重新定义ApplicationController。这似乎很乱,我宁愿从/ spec目录覆盖ApplicationController。
我有个更好的地方重写/specs
目录中的ApplicationController吗?