Не удается подключиться к базе данных mysql на светлом парусе при весенней загрузке

Вместо ожидания нескольких миллисекунд, жасмин имеет крючки, чтобы ждать, пока функция не вернется. На этой странице есть хороший пример, и я скопировал его здесь, чтобы показать конкретный способ тестирования обратных вызовов ajax. Просто добавьте шпион в качестве обратного вызова вашей функции и дождитесь выполнения этого обратного вызова.

it("should make a real AJAX request", function () {
    var callback = jasmine.createSpy();
    makeAjaxCall(callback);
    waitsFor(function() {
        return callback.callCount > 0;
    }, "The Ajax call timed out.", 5000);

    runs(function() {
        expect(callback).toHaveBeenCalled();
    });
});

EDIT:

Поскольку вы проверяете, что ваше приложение делает конкретный обратный вызов , вы можете просто заменить этот обратный вызов шпионом вместо того, чтобы создавать новый, как я.

Jasmine 2.0 добавил обратный вызов стиля «done», поэтому вы должны иметь возможность сделать что-то вроде: (I haven 't проверял синтаксис этого, но, надеюсь, хороший старт)

it("should make an ajax callback with jasmine 2.0", function(done)) {
    // this is the object you are testing - assume it has the ajax method you want to call and the method that gets called when the ajax method is finished
    var myObject
    spyOn(myObject, "callback").andCallFake(function() {
        done();        
    });    
    myObject.makeAjaxCall();    
}

0
задан Yogesh Gavali 16 January 2019 в 20:20
поделиться