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. spy使用其他angular方法,例如angular.copy并且angular.forEach不要抛出此错误。我正在使用 Jasmine 2.0 和 Angular ~1.3。任何有关解决此问题的建议将不胜感激。

4

1 回答 1

6

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

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

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

于 2015-07-27T18:04:17.113 回答