ruby-on-rails - 覆盖 ApplicationController 方法的适当位置
问题描述
在针对我的应用程序运行测试套件时,我需要覆盖控制器方法。
我不得不将我的覆盖放在我希望阻止的应用程序代码中。
class ApplicationController
end
if ENV['LAYOUT'] == 'test'
class ApplicationController
layout: "test_layout"
end
end
ApplicationController 不存在让我在任何规范助手中覆盖。加载顺序为:
- spec_helper
- 配置/应用程序
- rails_helper
- 应用程序控制器
因此,我在我的 spec_helper 中设置 ENV 变量,如果设置了 ENV,则重新定义 ApplicationController。这看起来很乱,我宁愿从 /spec 目录覆盖 ApplicationController。
我有更好的地方覆盖/specs
目录中的 ApplicationController 吗?
解决方案
推荐阅读
- maven - Maven surefire 插件即使在 IntelliJ 中未使用也会引发错误
- java - Webflux ReadTimeoutHandler 返回带有空消息的 io.netty.handler.timeout.ReadTimeoutException
- jenkins - 如何在 Kubernetes 中检查失败的容器日志
- python - 如何操作我的 DataFrame/Table 以便以下列格式显示?
- windows - PyQt5 控制窗口
- mysql - 从列中读取值并基于该值运行查询
- c++ - 为什么我的枚举在 exit() 期间会导致段错误?
- java - 雅加达邮件未能使用 Gmail 的不同选项同时获取另外 2 个附件
- javascript - WTForms SelectField 与“你确定”有关可以回滚的更改
- java - 如何解决 java.lang.NoSuchMethodError: java.util.Map.entry(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map$Entry