2011-11-11 17 views
4

いくつかの監視ツール(例えばMonit)でハートビートメッセージを使用してアプリケーションを生き残るための一般的な設定です。アプリケーションが実行されていて、すべてが正常に動作している場合、「I am alive」というメッセージが返されます。データベースに障害が発生した場合、またはWebサーバーがハングした場合、何も返されないか、内部サーバーエラー(HTTPステータスコード500)どうすればがデータベース障害をシミュレートする Ruby on Railsでこの動作をテストできますか?テスト(Test::UnitまたはRSpec)内でテスト目的でこの機能を有効または無効にできると便利です。テスト目的でデータベース障害をシミュレートする方法(Ruby on Rails)

答えて

5

ActiveRecord::Base.remove_connectionを使用すると、データベースの障害をシミュレートすることができます。 RSpecを使用すると、次のようになります。

describe "GET running" do 
    it "renders a 500 if crashed" do 
     ActiveRecord::Base.remove_connection 
     get :running 
     response.response_code.should == 500 
     ActiveRecord::Base.establish_connection 
    end 
    end 
関連する問題