"spyObj.plan не определен" в тесте Жасмин

У меня есть метод с именем 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 проверить, действительно ли вызывается вход в функцию или нет, когда я вызываю основную функцию. Поэтому я добавил пару шпионов к двум функциям и использовал " andCallThrough ()", чтобы перейти к реальной реализации. Но когда я вызываю первую (doLogin) функцию

logInController.doLogin(data);

Я получаю эту ошибку: TypeError: Невозможно прочитать свойство 'apply' из неопределенного

Отследил это с Жасмин на этот звонок:

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, я понял, что свойство плана - это функция, которую шпион будет вызывать в зависимости от того, как она была вызвана. jasmine.js.source

1 ответ

Оказалось, что я искажал определение моего файла. Та же проблема решена здесь: Несоответствующее определение

Другие вопросы по тегам