加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 当我运行功能测试时,如何在Ruby on Rails应用

发布时间:2020-12-17 03:33:30 所属栏目:百科 来源:网络整理
导读:我的 Ruby on Rails应用程序中有许多控制器,在操作结束时有一个救援处理程序,基本上可以捕获任何未处理的错误并返回某种“用户友好”错误.但是,当我进行rake测试时,我希望禁用那些默认的救援处理程序,这样我就可以看到完整的错误堆栈跟踪.有没有自动化的方法
我的 Ruby on Rails应用程序中有许多控制器,在操作结束时有一个救援处理程序,基本上可以捕获任何未处理的错误并返回某种“用户友好”错误.但是,当我进行rake测试时,我希望禁用那些默认的救援处理程序,这样我就可以看到完整的错误&堆栈跟踪.有没有自动化的方法来做到这一点?

更新澄清:我有这样的行动:

def foo
  # do some stuff...
rescue
  render :text => "Exception: #{$!}" # this could be any kind of custom render
end

现在,当我对此进行功能测试时,如果异常被提出,那么我将获得关于异常的一些信息,但我想要的是它的行为好像那里没有救援处理程序,所以我获取完整的调试信息.

更新:解决方案

我这样做了:

rescue:
    raise unless Rails.env.production?
    render :text => "Exception: #{$!}" # this could be any kind of custom render
  end

解决方法

不是很自动化,但是如何修改代码以在测试中调用时重新抛出异常?

也许是这样的:

def foo
  # do some stuff...
rescue
  raise if ENV["RAILS_ENV"] == "test"
  render :text => "Exception: #{$!}" # this could be any kind of custom render
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读