" spyObj.plan未定义"在Jasmine测试

时间:2015-12-03 08:39:06

标签: javascript jasmine jasmine-maven-plugin

我有一个名为doLogin的方法,它从另一个对象调用另一个方法登录。

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

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

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

我正在尝试使用jasmine来测试当我调用main函数时是否正在调用函数内登录。所以我在两个函数上加了几个间谍并使用" 和CallThrough()"进入实际实施。 但是当我调用第一个(doLogin)函数时

logInController.doLogin(data);

我收到此错误: TypeError:无法读取属性' apply'未定义的

通过Jasmine跟踪此电话:

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属性是spy将调用的函数,具体取决于它的调用方式。 jasmine.js.source

1 个答案:

答案 0 :(得分:0)

看来我的文件定义不正确。 此处解决了同样的问题:Mismatched definition