Искам да тествам функция, която включва ajax заявка. Тестът трябва да изчака ajax-заявката за успех/неуспех. Изпълнението на теста не работи, защото не чака точно сега.
това искам да се тества:
this.requestServerBoxId = function()
{
//ajax-request
$.ajax({
url: this.host_addr+"/?getid="+this.name,
type: 'POST',
data: {_data:this._data},
success: function(data) {
return IdSuccess(data);
},
error: function(data){
return false;
}
});
}
function IdSuccess(data){
if(typeof data != undefined)
return true;
return false;
}
Това е моят тест:
it("should call a function after ajax-success", function(){
expect(this.Process.requestServerBoxId()).toBe(true);
});
Изпробвах шпиони, но предполагам, че ги използвам погрешно:
spyOn($, 'ajax' ).and.returnValue(123);
Надявах се, че този шпионин връща 123 всеки път, когато се прави заявка за ajax. Но не става.