我有一个远程表单,在AJAX请求正在进行时禁用提交按钮。我想检查一下,如果我强调点击按钮,就不会有其他的AJAX请求。我怎么能在集成测试中检查这个?
答案 0 :(得分:4)
您可以使用jquery
检查活动的ajax调用$.active
如果使用capybara进行集成测试
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秒答案 1 :(得分:1)
保留全局变量或静态变量。增加Ajax调用的函数内的变量,并检查变量的值。它不应该超过一个,保证只进行一次Ajax调用。
如果您正在进行自动化测试,这将为您提供有关检查活动和其他内容的ajax调用次数的更多信息。
http://hedleyproctor.com/2012/07/effective-selenium-testing/
希望这会有所帮助。谢谢。