使用jasmine模拟对服务器的调用

时间:2012-09-13 13:19:59

标签: javascript ajax jquery jasmine

我想使用jasmine来模拟对服务器的ajax调用,并测试 已完成并失败延迟对象

目前,我正在进行实际操作,因此尝试向服务器发送一串电话。

如何修复以下代码

mySpy = spyOn(backendController, 'submitForm').andCallThrough(); 
// it makes a real call to the server

mySpy = spyOn(backendController, 'submitForm'); 
// it does not make a real call to the server but I get the following error
// Cannot call method 'done' of undefined

以下是关于doSubmitForm

的代码
doSubmitForm: function (backendController) {
  backendController.submitForm(message.val())
        .done(this.onSuccess)
        .fail(this.onError);
});

1 个答案:

答案 0 :(得分:3)

在失败的情况下,我认为问题是由于调用没有返回jQuery-Deferred对象。

要验证这个理论,你可能会尝试这样的事情:

var tmpDefObj = $.Deferred();

spyOn(backendController, 'submitForm').andCallFake(function() {return tmpDefObj;});