Я вызываю внешний метод API для почтового метода, но не могу его покрыть с помощью jasmine.
Я уже издевался над внешней функцией API, используя объект окна, и создал функцию для имитации обратного вызова, возвращая некоторый объект. Но ничего не помогает.
JavaScript
function loadApi() {
extAPI.load({
email: 'testEmail.test.com'
}, function(resultObject) {
if(resultObject.approved) {
// callback with result object - not able to cover this
}
});
}
Spec.js и макеты
beforeEach(function() {
function mockLoadCallback() {
var object = {
approved: false
};
return object;
}
widnow.extAPI = {
load: function(object, Function) {
var deferred = $.Deferred();
deferred.resolve(mockLoadCallback);
return deferred.promise();
}
}
});
it('load the external API response', function() {
var loadSpy = spyOn(extAPI, 'load');
loadApi();
expect(loadSpy).toHaveBeenCalled();
});
операторы и логика в обратном вызове загрузки должны быть покрыты, но даже не вызывать после шпиона. что я делаю неправильно здесь.