我的 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