2012-12-20 18 views
7

リモートフォームがあり、AJAXリクエストの処理中に送信ボタンが無効になります。ボタンをクリックしてストレスを感じると、他のAJAXリクエストは実行されないことを確認したいと思います。どのように私は統合テストでこれをチェックできますか?統合テストでAJAXコールの数を確認するにはどうすればよいですか?

+0

自動テストではありませんが、firefoxと[firebug addon](http://getfirebug.com/)でリクエストを簡単にチェックできます。 –

答えて

4

あなたが統合テスト

page.evaluate_script('$.active').should be <= 1 

のためのカピバラを使用する場合は解決策になるかもしれないjqueryの

$.active 

でアクティブなAjaxの呼び出しを確認することができます。呼び出しはヘルパー関数が

def test_until(seconds=5) 
    start_time = Time.now 
    while (Time.now - start_time) <= seconds do 
    yield 
    sleep 0.05 
    end 
end 

ウィッヒは、このようにあなたが5秒の場合のテストこの

test_until do 
    page.evaluate_script('$.active').should be <= 1 
end 

のように呼び出すことができますトリックを行う可能性があります を発生した場合、あなたはおそらく知らないとして

あり1つ以上のアクティブなAjaxコールです。

1

グローバル変数または静的変数を保持します。 Ajaxによって呼び出された関数内の変数をインクリメントし、変数の値が何であるかを確認します。これは決して1を超えるべきではなく、Ajax呼び出しが1回だけ行われることを保証します。

自動テストを行っている場合は、アクティブなAJAXコールの数や他のものを確認するための詳細情報が表示されます。

http://hedleyproctor.com/2012/07/effective-selenium-testing/

は、この情報がお役に立てば幸いです。ありがとうございました。

関連する問題