【问题标题】:"spyObj.plan is undefined" in Jasmine test [duplicate]Jasmine 测试中的“spyObj.plan 未定义”[重复]
【发布时间】:2016-03-07 18:53:13
【问题描述】:

我有一个名为 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: Cannot read property 'apply' of undefined

用 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

【问题讨论】:

    标签: javascript jasmine jasmine-maven-plugin


    【解决方案1】:

    看来我的文件定义有误。 同样的问题在这里解决了:Mismatched definition

    【讨论】:

      猜你喜欢
      • 2020-11-20
      • 1970-01-01
      • 2017-08-19
      • 1970-01-01
      • 1970-01-01
      • 2015-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多