Вместо переопределения функции jJuery AJAX вы также можете использовать плагин jQuery Mockjax, разработанный .appendTo. Этот плагин, по сути, делает то, что предлагает другой ответ, но он допускает гораздо более изощренную насмешку. Например, если у вас есть функция:
$.ajax({
url:"/api/user",
type:"GET",
dataType:"json",
data:'{"uid":"foobar"}',
success:function(data){
console.log("Success!");
},
error:function(data){
console.log("Error!");
}
});
Вы можете смоделировать его с помощью mockjax, просто вызвав функцию mockjax, которая автоматически включается в jQuery:
$.mockjax({
url:"/api/user",
type:"GET",
response:function(requestData){
//handle the mock response in here
this.responseText = '{"fullname":"Mr. Foo Bar"}';
}
});
Вторая функция насмешки может быть включена во внешний файл JavaScript, скажем, «mocks.js», и единственное, что нужно сделать, это включить библиотеку mockjax (которую можно найти в https://github.com/appendto/jquery-mockjax/). Единственное, что нужно иметь в виду, это то, что это будет только издеваться над вызовами jQuery ajax, а не всеми XMLHttpRequests. Если вы хотите это сделать, то следуйте совету @ bertvh и используйте Sinon.js.