无法监视 angular.element

Cannot spy on angular.element

我有一个 Jasmine 测试由于 spyOn 未执行而不断失败。

以下测试将自动失败:

it('simple test', function() {
    spyOn(angular, 'element');
});

错误是:

TypeError: 'undefined' is not an object (evaluating 'angular.element(handle.elem).off')
        at /Users/geoff/Project/www/components/angular-mocks/angular-mocks.js:1946
        at /Users/geoff/Project/www/components/angular-mocks/angular-mocks.js:1977

这个错误似乎只发生在 angular.elementspying 在其他 angular 方法上,例如 angular.copyangular.forEach 不会抛出此错误。我正在使用 Jasmine 2.0 和 Angular ~1.3。任何有关解决此问题的建议都将不胜感激。

您需要允许访问真实对象。

spyOn(angular, 'element').and.callThrough();

代码试图访问 return 值上的 属性,但间谍没有 returning 任何东西。您无法在未定义的对象上访问 .off