2011-08-17 23 views
34

私は、Webアプリケーションのフロントエンドをテストしており、AJAXリクエストの間にさまざまな遅延が発生し、どのように遷移が現れるかをテストしたいと考えています。応答を遅らせるためにコントローラーにsleep(1500)を追加する方法はありますか?テスト用にRailsコントローラに遅延を追加するには?

+1

コントローラの操作にスリープ(1000)コールを追加するだけです。 –

+5

RoRのスリープのデフォルト単位は_seconds_ !!です。コントローラにスリープ1.5を追加し、人生は良いです。ありがとう:) – RSG

答えて

66

そうのようなコントローラー:

def catalog 
    #Makes the request pause 1.5 seconds 
    sleep 1.5 

    ... 
end 

さらに良い:唯一のdevの環境のために睡眠を追加します。

9

受け入れられた答えを詳述します。 は、任意の応答を返す前に待機する秒数です、sleepを参照してください。

class ApplicationController < ActionController::Base 

    # adds 1s delay only if in development env 
    before_filter if: "Rails.env.development?" do 
    sleep 1 
    end 
end 

:あなたは、他のコントローラによって拡張され、デフォルトApplicationControllerのようないくつかのベースコントローラを持っている場合は、次のフィルタを定義することができドキュメント

このフィルタは、アプリケーションが開発環境であり、それはすべてのリクエストに所望の遅延を追加するだけ場合をトリガされますアプリケーションによって処理されます。

関連する問題