我有一个名为 doLogin 的方法,它从另一个对象调用另一个方法 login。
doLogin : function(data) {
var userMgtRequest = new UserMgtRequest();
userMgtRequest.setLoginId(data.username);
userMgtRequest.setLoginPwd(data.password);
var callback = this.callbackLogin;
userMgtManager.login(userMgtRequest, callback);
}
我正在尝试使用 jasmine 测试当我调用主函数时是否真的调用了函数内登录。所以我在这两个函数上放了几个间谍,并使用“ andCallThrough( )”进入实际的实现。但是当我调用第一个(doLogin)函数时
logInController.doLogin(data);
我收到此错误: TypeError:无法读取未定义的属性“应用”
用茉莉花跟踪到这个电话:
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