7 votes

Comment puis-je vérifier le nombre d'appels AJAX effectués, dans un test d'intégration ?

J'ai un formulaire distant, qui désactive le bouton d'envoi pendant que la requête AJAX est en cours. J'aimerais vérifier que si j'insiste pour cliquer sur le bouton, aucune autre requête AJAX ne sera effectuée. Comment puis-je vérifier cela dans un test d'intégration ?

4voto

rapimo Points 2271

Vous pouvez vérifier les appels ajax actifs avec jquery

$.active

Si vous utilisez capybara pour les tests d'intégration

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

pourrait être une solution.

Comme vous ne savez probablement pas quand les appels se produisent une fonction d'aide peut faire l'affaire

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

qui peut être appelé comme ceci

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

Ainsi, vous testez pendant 5 secondes s'il y a plus d'un appel ajax actif.

1voto

LPD Points 1542

Conserver une variable globale ou statique. Incrémentez la variable dans la fonction appelée par Ajax et vérifiez quelle sera la valeur de votre variable. Elle ne devrait jamais dépasser un, garantissant que l'appel Ajax n'est fait qu'une seule fois.

Si vous faites des tests automatisés, cela vous donne plus d'informations sur la vérification du nombre d'appels ajax actifs et d'autres choses.

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

J'espère que cela vous aidera. Merci.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X