【发布时间】:2009-05-07 05:56:27
【问题描述】:
我的 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
【问题讨论】:
标签: ruby-on-rails unit-testing exception rescue