QUnit testing synchronous ajax calls

2019-08-18 05:47发布

问题:

Can somebody please tell me whether we need to use asyncTest() to test the synchronous ajax calls or test() can be used without start() and stop().

Consider this:

var Class= function () {
var init = function () {

    amplify.request.define('students', 'ajax', {
        url: '/methods/GetStudentsList',
        dataType: 'json',
        type: 'GET',
        async:false

    });
};

Students = function (branch, callback) {
    init();
    return amplify.request("students",
        { branchID: branch },
        callback.success,
        callback.error
    );
};

return {
    Students: Students
};
} ();

How can we write test cases for Class.Students() method when the 'async' property is 'true' and 'false' ?

回答1:

with asyncTest and asnyc true or false:

asyncTest("test", function () {
    init.Students(someBranch, function (a, b, c) {
        ok(true); //add your tests here
        start();
    });
});

with test and stop/start:

   test("test", function () {
        stop();
        init.Students(someBranch, function (a, b, c) {
            ok(true); //add your tests here
            start();
        });
    });

note that your requests will be handled async by qunit in both cases

using test without start nor stop will probably let your tests fail