rescue_fromに集約したエラー処理をテストするのに必要なたった一つの方法

タイトルは釣ry。もう古いか

最近はCucumberをつかってテストを外から書こうブームが来てます。で、ちょっと困ったのがresuce_fromとの併用。
私の理解が間違っていなければ、rescue_fromは(復帰する必要性の低い/復帰できない)例外をApplicationControllerでまとめて処理するために役立つものです*1。たとえばAR::RecordNotFoundをてっぺんで補足してNot Foundするとか*2
そういう性質なんで当然テスト対象にすべきですが、Cucumber同梱のRSpecだとそこを外してしまっています。つまり、rescue_fromのレイヤまであがってきた例外がそのまま呼び出し側(実行しているテスト)まであがってくる、と。これはテスト中に例外が発生した場合には便利なんでしょうが、rescue_fromを使ってエラー処理をまとめたい場合には不便です。

なので、features/support/env.rb にこんなん書いてみました。

#nodocなメソッドを呼びまくっているので動かない環境もあるかも。Rails 2.1.2でやってます。

*1:この設計についてのツッコミも欲しい。どうなんだろ。

*2:もちろん個々で必要になることもあるけど