Webratで50x系エラーを通す
cucumber-railsを使っているみなさま、Webratは500系のサーバエラーが返ってくると、サーバ側のバグとしてPageLoadErrorをあげてくれます。
これは、だいたいにおいてありがたいんですが、稀に、要件として500番台を返すことを検証するテストを書きたくなります。そんなときのTips。
Beforeなんかで以下のようにすると、500番台も止まらずに次の検証に進めます。#nodocなのでご利用は計画的に。
class << webrat_session def success_code? (200..599).include?(response_code) end end
success_code?に500を含めるのが何とも気持ち悪いですが、「このテストは500番台が返るのを想定しているのだから、500台が来るのはsuccessの範囲内だ!!」という自己暗示でどうか。
実際はtagと組み合わせて、次のようにしておくとよりよい感じです。
Before("@expect_server_error") do class << webrat_session def success_code? (200..599).include?(response_code) end end end