如何使用jasmine AJAX存根AJAX函数

How to stub AJAX function using jasmine Ajax

本文关键字:AJAX 存根 函数 jasmine 何使用      更新时间:2024-06-18

这是我的代码:

function sendRequestData(url, urlParameters) {
if (url != null && urlParameters != null) {
    $.ajax({
        url : url,
        method : 'POST',
        headers : {
            'Accept' : 'application/json'
        },
        contentType : 'application/json',
        data : JSON.stringify(urlParameters),
        dataType : "json",
        success : function(data) {
            successCallBack(data)
        },
        error : function(data, status, errorThrown) {
            failCallBack(data, status, errorThrown)
        }
    });

我想截取函数并检查响应。不管怎样,我可以使用jasmine ajax插件做到这一点吗。

it("should receive a successful response", function() {
  spyOn($, "ajax").andCallFake(function(e) {
    e.success({});
  });
  spyOn(window, "successCallBack");
  spyOn(window, "failCallBack");
  sendRequestData('dummyURL', ['dummyParam1', 'dummyParam2']);
  expect(window.successCallBack).toHaveBeenCalled();  //Verifies this was called
  expect(window.failCallBack).not.toHaveBeenCalled();  //Verifies this was NOT called
});

对于失败,将callFake替换为e.error(),并反转successCallBackfailCallBack 的断言

有关更多信息,请参阅下面的链接http://www.htmlgoodies.com/html5/javascript/testing-ajax-event-handlers-using-jasmine-spies.html