Sim*_*ide 5 unit-testing ruby-on-rails exception rescue
我的Ruby on Rails应用程序中有许多控制器,在操作结束时有一个救援处理程序,基本上可以捕获任何未处理的错误并返回某种"用户友好"错误.但是,当我进行rake测试时,我希望禁用那些默认的救援处理程序,这样我就可以看到完整的错误和堆栈跟踪.有没有自动化的方法来做到这一点?
更新澄清:我有这样的行动:
def foo
# do some stuff...
rescue
render :text => "Exception: #{$!}" # this could be any kind of custom render
end
Run Code Online (Sandbox Code Playgroud)
现在,当我对此进行功能测试时,如果异常被提出,那么我将获得关于异常的一些信息,但我想要的是它的行为好像那里没有救援处理程序,所以我获取完整的调试信息.
更新:解决方案
我这样做了:
rescue:
raise unless Rails.env.production?
render :text => "Exception: #{$!}" # this could be any kind of custom render
end
Run Code Online (Sandbox Code Playgroud)
不是很自动化,但是如何修改代码以在测试中调用时重新抛出异常?
也许是这样的:
def foo
# do some stuff...
rescue
raise if ENV["RAILS_ENV"] == "test"
render :text => "Exception: #{$!}" # this could be any kind of custom render
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2521 次 |
| 最近记录: |