首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在不污染ApplicationController的情况下在测试中处理响应代码

在不污染ApplicationController的情况下在测试中处理响应代码
EN

Stack Overflow用户
提问于 2015-09-14 07:47:07
回答 1查看 119关注 0票数 0

我的问题是,我们在SolanoCI中收到了神秘的504错误,并且我试图找到一种干净的方法,只在测试环境中处理这些错误,而不将特定于测试的代码添加到ApplicationController中。

我通过测试设置尝试了一个默认处理程序,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
allow(ApplicationController).to receive(:timeout).and_return { 
  #do a bunch of stuff to try to pull out request information
}

但是我发现它缺少一些可访问的重要信息,比如原始请求url和任何堆栈跟踪信息。

欢迎任何建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-14 21:52:28

在这种情况下,我认为最简单的方法是让Solano为您在他们的机器上运行一个调试会话 (它们允许您访问自己的服务器,这样您就可以自己运行测试)。

在这样的黑匣子情况下,这是一个实时保护程序。您可以多次运行测试,并在那里使用各种调试工具。您可能必须先安装它们,因为Solano试图不从Gemfile (如pry)安装额外的工具,以尽量减少测试的运行时间。

只要通过联系表格写下来,他们就会给你一个访问权限。不要忘了在你完成工作后停止它,因为它运行的时间是从计划中的工时中扣除的。

希望能帮上忙。

编辑:似乎匿名控制器功能非常适合您的情况:

使用controller方法定义将从所述类继承的匿名控制器。这对于指定诸如全局错误处理之类的行为非常有用。

所以,你可以这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
RSpec.describe ApplicationController, :type => :controller do
  controller(ApplicationController) do

    rescue_from Timeout::Error, :with => :log_timeout

    def log_timeout(error)
      # log error as you wish
    end
  end

  describe "handling timeout exceptions" do
    it "writes some logs" do
      get :index
      expect(response).to have_https_status(504)
    end
  end
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32568847

复制
相关文章
在公司制度不规范的情况下,如何做好测试工作?
遇到这个好机会你还在等什么?如果说这个公司已经足够好了,那他还请你过来做什么?你的能力还足以让公司有更高的提升么?
软件测试君
2019/11/04
1.2K0
防止vue文件中的样式出现‘污染’情况(html5 scoped特性)
在vue中,如果把样式写在vue文件的 style中,可能会出现样式污染的情况,这是要把写样式的标签
lin_zone
2018/08/15
8680
PHPStorm 代码在 CSDN 文章中显示的相关 js 的“onclick” 代码失效情况!
① 为了这个问题,今天与客服沟通了下,(客服态度很好的哦)只是个人认为还是不够理想吧…
泥豆芽儿 MT
2020/07/14
3.8K0
PHPStorm 代码在 CSDN 文章中显示的相关 js 的“onclick” 代码失效情况!
盘点一下在渗透测试中可能用到的网络搜索引擎
乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
乌鸦安全
2022/06/07
4.9K0
盘点一下在渗透测试中可能用到的网络搜索引擎
SharePoint下在Feature中动态Register/Remove HttpModule
在SharePoint开发时,你会遇到这样一个问题,Global.asax去哪儿?怎样添加一个Global.asax?怎样在Application_Start这个事件处理程序里设置初始化?似乎在Visual Studio中无法像纯ASP.NET开发那样轻松添加一个Global.asax。 当然找到这个Global.asax也不难,打开IIS,右键浏览对应网站,在网站根目录下你可以找到Global.asax。比如我的网站部署在C:\inetpub\wwwroot\wss\VirtualDirectories\
用户1161731
2018/01/11
6990
vue导入外部css不污染全局
导入外部css <style src="./main.css" scoped> </style> 导入外部less 需要先安装less插件 npm install less less-loader <style src="./main.less" lang="less" scoped> </style>
明知山
2020/12/14
2.1K0
关于sql中update语句响应条数为0的情况
导读:平时我们在做开发的时候,经常使用update去更新一条或多条数据。但是忽略了update语句的一条重要规则。 Update语句响应条数为0的情况只有两种: 1.没有更新到该数据。 例如:update table_1 set col_1 = ‘zhai’ where id = ‘fengxi’ table_1表中没有 id = ‘fengxi’ 这条数据,故响应条数为0。 2.更新的数据和原数据一样。 例如:(同上sql)update table_1 set col_1 = ‘zhai
翟凤玺
2020/10/29
1.4K0
在intellij idea中快速生成测试代码
Junit4可以直接运行我们的某个方法,没有main入口函数是断然不行的。其实在org.junit.runner包下,有个JUnitCore.class,其中就有一个 标准的main方法,这就是JUnit入口函数。
用户7705674
2021/10/07
3.3K0
BTrace 告诉你如何在不重启 JVM 的情况下在线调试
Hello 大家好, 我是阿粉,不知道你有没有遇到过这种场景,线上服务跑了一段时间过后偶尔会出现问题,光靠代码和数据分析找不到原因,而且这种情况也不是很常见所以对应的代码也没有加日志输出,如果说重新加上日志进行发布的话,就会破坏现场只能再等一段时间了,或者有的时候想看下接口的参数,从而判断接口参数有没有问题。
Java极客技术
2022/12/02
4420
BTrace 告诉你如何在不重启 JVM 的情况下在线调试
深度学习中激活函数的导数在不连续可导时的处理
sigmoid函数是处处连续可导的。其他如ReLU,在0处不连续可导。实际上激活函数用ReLU的情况很多。
用户4363240
2019/12/18
3.1K0
深度学习中激活函数的导数在不连续可导时的处理
vue中 不更新视图的处理办法?
方案一:利用Vue.set(object,key,val) 例:Vue.set(vm.obj,'key','value') 方案二:利用this.$set(this.obj,key,val) 例:this.$set(this.obj,'key','value') 方案三:利用Object.assign({},this.obj)创建新对象 Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。 Object.assign(target, ...so
青梅煮码
2023/01/16
2K0
在没有源代码的情况下对Linux二进制代码进行模糊测试
AFL配合DynamoRIO,没错,就是drAFL。在drAFL的帮助下,我们就可以在没有源代码的情况下对LInux二进制代码进行模糊测试了。
FB客服
2019/05/31
1.5K0
rem在响应式布局中的应用
最近做了一些响应式的页面,遇到了一些问题,想了些解决方法,在这里总结一下。目前响应式的主流实现方式是百分比布局,加上媒体查询@media screen。关于媒体查询还有媒体查询的一些兼容性问题,网上介绍的很多
用户9127725
2022/08/08
1.7K0
[译] 如何处理 JavaScript 比较中的临界情况
原文地址:https://medium.com/javascript-in-plain-english/how-to-handle-comparison-corner-cases-c96ae9a17d4a 原文作者:Alen Vlahovljak 译文出自:"掘金翻译计划"(https://github.com/xitu/gold-miner) 本文永久链接:https://github.com/xitu/gold-miner/blob/master/article/2020/how-to-handle-
江米小枣
2020/09/16
1.8K0
MySQL不走索引的情况分析
当数据库查询命中索引时,数据库会首先利用索引列的值定位到对应的数据节点。这个数据节点上记录了对应数据行的行标识符(Row Identifier)。然而,如果查询需要获取该行其他列的数据,就需要进行回表操作。
关忆北.
2023/10/11
2940
MySQL不走索引的情况分析
axios的响应处理
在使用Axios发送请求后,可以通过.then()方法来处理成功的响应,并获取返回的数据。以下是一个示例:
堕落飞鸟
2023/05/19
1.4K0
性能测试中过滤异常的响应时间
众所知周,及时排除了JVM尚未完全预热的因素以外,在所有请求中总有一些异常请求响应时间,今天分享一个案例:通过过滤测试刚开始时候的响应时间记录来提升整体数据的准确性。
FunTester
2022/04/01
7780
PageHelper在SpringBoot的@PostConstruct中不生效
在使用PageHelper的过程中,出现了一个很奇怪的问题,假设在数据库中存放有30条Country记录,我们用下面的方法使用PageHelper进行分页查询,那么我们希望得到的page.size是10。
翎野君
2023/05/12
9890
Play Scala 2.5.x - Play Web开发基础
介绍 本文的目标是通过一个用户登录示例,简要的介绍使用Play进行Web开发的基本流程。本文并不会手把手教你如何创建一个Play应用,而是通过核心的代码片段传递Play的一些设计理念,为不熟悉Play框架的同学提供一个快速了解的途径。 创建登录Controller 在controllers目录下创建ApplicationController类: package controllers import play.api.mvc._ class ApplicationController extends Con
joymufeng
2018/05/17
1.4K0
点击加载更多

相似问题

如何在不污染全局命名空间的情况下在规范中创建类?

10

在不暂停代码的情况下在python中延迟?

114

如何在不污染其命名空间的情况下在python模块中执行导入?

53

在不崩溃的情况下在Chrome中获得大型AJAX响应

12

如何在不污染其余代码的情况下包含WinAPI?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文