我有一个 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.element
中。 spy
其他 angular
方法,例如 angular.copy
和 angular.forEach
不会抛出此错误。我正在使用 Jasmine 2.0 和 Angular ~1.3。任何有关解决此问题的建议都将不胜感激。
最佳答案
您需要允许访问真实对象。
spyOn(angular, 'element').and.callThrough();
代码试图访问返回值的一个属性,但是 spy 没有返回任何东西。您不能在 undefined object 上访问 .off
!
关于javascript - 无法监视 angular.element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31659114/