2012-12-20 29 views
7

AJAX isteği devam ederken gönderme düğmesini devre dışı bırakan uzak bir formum var. Düğmeye tıklarsam, başka bir AJAX isteğinin yapılmayacağını kontrol etmek isterim. Bunu bir entegrasyon sınavında nasıl kontrol edebilirim? Eğer bir çözüm olabilir entegrasyon testlerindeBir entegrasyon testinde yapılan AJAX çağrılarının sayısını nasıl kontrol edebilirim?

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

için Kapibara kullanırsanız

+0

Bu otomatik bir test değildir, ancak istekleri firefox ve [firebug addon] ile kolayca kontrol edebilirsiniz (http://getfirebug.com/) –

cevap

4

Eğer jquery

$.active 

aktif ajax çağrıları kontrol edebilirsiniz. aramalar yardımcı işlevi

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

wich Böylece 5 saniye eğer test bu

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

gibi çağrılabilir hile yapabilir meydana geldiğinde muhtemelen bilmiyorum gibi

orada her zamankinden fazla aktif ajax çağrısı var

1

Küresel veya statik bir değişken tutun. Değişkeni Ajax tarafından çağrılan işlev içinde artırın ve değişkeninizin değerinin ne olacağını kontrol edin. Ajax çağrısının sadece bir kez yapılmasını garantileyen, asla aşmamalıdır.

Eğer otomatik testlere giriyorsanız, bu size ajax çağrılarının aktif ve diğer şeylerin sayısını kontrol etme hakkında daha fazla bilgi sağlar. Bu yardımcı olur

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

Umut. Teşekkür ederim.

İlgili konular