Rambulance でエラーページの出し分けを行っているので、エラーページのテストを書きたかった。
Rambulance をテスト環境でも動かすには、 config/environments/test.rb に
config.consider_all_requests_local = false
config.action_dispatch.show_exceptions = true
を設定すれば良いのだが、これだと例外のテストが書きにくくなりそうなので、
指定した場合のみ Rambulance が有効になるようにしたかった。
試行錯誤のすえ、RSpec の場合は次のような shared_context を用意すればいけた。
RSpec.shared_context 'enable rambulance', rambulance: true do
  before do
    Rails.application.env_config['action_dispatch.show_detailed_exceptions'] = false
    Rails.application.env_config['action_dispatch.show_exceptions'] = true
  end
  after do
    Rails.application.env_config['action_dispatch.show_detailed_exceptions'] = true
    Rails.application.env_config['action_dispatch.show_exceptions'] = false
  end
end
使い方
specify 'エラーページを返すこと', rambulance: true do
  # ...
end
注意点として、 Rails.application.config の値を直接変えてもダメだったので、Rails.application.env_config を変える必要がある。
参考: http://makandracards.com/makandra/12807-custom-error-pages-in-rails-3-2