Для каждой асинхронной операции в обратном вызове QUnit.test () используйте assert.async () , которая возвращает функцию «done», которая должна быть вызвана после завершения операции. assert.async () принимает количество вызовов в качестве параметра. Обратный вызов, возвращаемый из assert.async (), выдаст ошибку, если она вызвана больше, чем количество принятых вызовов, если оно предусмотрено. Каждый вызов done () суммирует счетчик вызовов. После завершения каждого звонка тест завершается.
<html> <head> <meta charset = "utf-8"> <title>QUnit basic example</title> <link rel = "stylesheet" href = "https://code.jquery.com/qunit/qunit-1.22.0.css"> <script src = "https://code.jquery.com/qunit/qunit-1.22.0.js"></script> </head> <body> <div id = "qunit"></div> <div id = "qunit-fixture"></div> <script> QUnit.test( "multiple call test()", function( assert ) { var done = assert.async( 3 ); setTimeout(function() { assert.ok( true, "first callback." ); done(); }, 500 ); setTimeout(function() { assert.ok( true, "second callback." ); done(); }, 500 ); setTimeout(function() { assert.ok( true, "third callback." ); done(); }, 500 ); }); </script> </body> </html>
Проверьте вывод
Вы должны увидеть следующий результат —