2015-12-03 395 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

回答