Sooey

2011-12-13 20:23:42 +0900

rspec + shouldaで、Railsコントローラのステータスコードをテストする場合のメモ。

subject { controller }
it { should respond_with(:success) }  # 200にマッチ
it { should respond_with(:redirect) }  # 300〜399にマッチ
it { should respond_with(:missing) }  # 404にマッチ
it { should respond_with(:error) }  # 500〜599にマッチ

上記以外の場合はRack::Utils::SYMBOL_TO_STATUS_CODEおよびActionController::Base::SYMBOL_TO_STATUS_CODEを利用して変換が行われる。

いずれにもマッチしない場合は値がそのまま比較される。