Я хочу протестировать функцию, которая включает запрос 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. Но это не работает.