Я понимаю, что вы хотели бы написать интеграционный тест с использованием jasmine, что вполне возможно благодаря поддержке Async, которую имеет jasmine, я надеюсь, что следующий пример поможет вам понять, как вы можете использовать функции Async jasmine для написания реальной интеграцииtest:
describe("A jQuery ajax test", function() {
it("should make AJAX request", function () {
var return = null;
runs(function(){
// hosts actual ajax call
return = testAjax();
});
waitsFor(function(){
//this method polls until the condition is true or timeout occurs,whichever occurs first
return return.readyState==4;
},"failure message",700//timeout in ms
);
runs(function(){
// 2nd runs block can be used to verify the actual change in state
// Add other relevant expectation according to your application context.
expect(return).toBeTruthy();
});
});
});
function testAjax() {
// result here is a deffered object whose state can be verified in the test
var result = null;
result = $.ajax({
type: "GET",
url: "obj.json",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function() { //do something on success}
});
return ret;
}
Обратите внимание: во время выполнения вызова AJAX вы будете ограничены Cross-origin_resource_sharing и ваш сервер должен вернутьсясогласно части ответа заголовок «Access-Control-Allow-Origin: ваш запрашивающий домен»