2015-12-03 97 views
0

我有一个名为doLogin的方法,它调用另一个对象的另一个方法登录。“spyObj.plan is undefined”在茉莉花测试

doLogin : function(data) { 
     var userMgtRequest = new UserMgtRequest(); 

     userMgtRequest.setLoginId(data.username); 
     userMgtRequest.setLoginPwd(data.password); 

     var callback = this.callbackLogin; 
     userMgtManager.login(userMgtRequest, callback); 
    } 

我想测试,茉莉,如果在功能登录真的被称为与否当我打电话的主要功能。因此,我在这两个功能上加了几个间谍,并使用“和CallThrough()”进入实际实施。 但是当我做调用第一(doLogin)函数

logInController.doLogin(data); 

我得到这个错误: 类型错误:无法读取属性未定义

茉莉跟踪它的这一号召“应用”:

jasmine.createSpy = function(name) { 

var spyObj = function() { 
    spyObj.wasCalled = true; 
    spyObj.callCount++; 
    var args = jasmine.util.argsToArray(arguments); 
    spyObj.mostRecentCall.object = this; 
    spyObj.mostRecentCall.args = args; 
    spyObj.argsForCall.push(args); 
    spyObj.calls.push({object: this, args: args}); 
    return spyObj.plan.apply(this, arguments); 
}; 

谁能告诉我什么是spyObj.plan财产,为什么它被未定义?

**编辑: 查看jasmine.js源文件,我知道plan属性是间谍要调用的函数,具体取决于它的调用方式。 jasmine.js.source

回答