7

AJAXリクエストの進行中に送信ボタンを無効にするリモートフォームがあります。ボタンをクリックを強調すると、他のAJAXリクエストが実行されないことを確認したいと思います。統合テストでこれを確認するにはどうすればよいですか?

4

2 に答える 2

4

jqueryでアクティブなajax呼び出しを確認できます

$.active

統合テストにカピバラを使用する場合

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

解決策かもしれません。

呼び出しがいつ発生するかはおそらくわからないので、ヘルパー関数がトリックを実行する可能性があります

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

このように呼ぶことができます

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

したがって、アクティブなajax呼び出しが複数ある場合は、5秒間テストします。

于 2013-01-03T17:00:53.460 に答える
1

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

自動テストを使用している場合は、アクティブなajax呼び出しの数やその他のものを確認するための詳細情報が提供されます。

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

お役に立てれば。ありがとうございました。

于 2013-01-03T17:24:55.277 に答える