Я хочу использовать Jasmine для двух вещей, протестировать функцию, которая выполняет реальный вызов ajax, и получить данные обратного вызова из вызова ajax для использования в дополнительных тестах жасмина.сделать реальный вызов ajax с жасмином
Это то, что я до сих пор:
функцииJavascript:
function getAttributeInfo(selectedLayer){
// Get layer attributes
$.ajax({
type: 'get',
url: '/geoserver/oqplatform/ows?service=WFS&version=1.0.0&request=GetFeature&typeName='+ selectedLayer +'&outputFormat=json',
success: function(data) {
// pass the data into a global variable
foo = data;
// EDIT
return data;
}
});
}
Тест:
it("an ajax test", function() {
var ajaxFunction = getAttributeInfo(SVIRLayerNames[0]);
// creating spied callback
var callback = jasmine.createSpy('callback');
spyOn($, 'ajax').and.callFake(function (req) {
var d = $.Deferred();
return d.promise();
});
// EDIT
//ajaxFunction.fetch(callback);
ajaxFunction(callback);
// everything after this does not seem to execute
var fakeData = callback.calls.mostRecent().args[0];
});
Если я утешаю войти переменную Foo через 5 секунд можно увидеть, что был сделан запрос ajax и данные доступны в переменной foo
Какой вопрос? –
Извините, если он не ясен, я хочу получить данные обратно из вызова ajax в jasmine – Bwyss
Кажется, что какой-то код отсутствует. 'getAttributeInfo' ничего не возвращает, поэтому' ajaxFunction' в тесте 'undefined', то есть не имеет метода' fetch'. –