javascript - 无法监视 angular.element

标签 javascript angularjs jasmine spy

我有一个 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.copyangular.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/

相关文章:

javascript - 如何在 $http.post() 之后从 Angular 导航到 php 页面

javascript - 我如何在 Jasmine 中测试回调

javascript - 如何阅读 Istanbul 尔报道?

javascript - IE 中每个浏览器选项卡中的不同图标

javascript - jQuery/Javascript 将文本节点拆分为两个或三个?

javascript - Angular 教程 : Nodejs and certificate issue

javascript - Protractor 通过了我的测试,但没有执行 'it' block

javascript - 守夜人 : I need to search for a word in a table without using document

javascript - routerLink 带有单行 if 和子路由

javascript - 如何在 Jasmine/Angularjs 中对下拉列表进行单元测试