无法监视angular.element对象

5

我有一个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时出现。对其他angular方法进行spy,如angular.copyangular.forEach不会引发此错误。我正在使用Jasmine 2.0和Angular ~1.3。如有解决此问题的建议,将不胜感激。

你能否在 Plunkr 或 jsFiddle 上重现你的问题? - Jan
1个回答

6

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

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

代码试图访问返回值上的一个属性,但是间谍函数没有返回任何值。在未定义的对象上无法访问.off!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接