2015-07-27 16 views
5

Tôi có một thử nghiệm Jasmine liên tục bị lỗi do spyOn không thực thi.Không thể gián điệp trên angular.element

Các thử nghiệm sau đây sẽ tự động thất bại:

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

Lỗi này là:

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 

Lỗi này dường như chỉ xảy ra với angular.element. spy ing trên các phương thức angular khác chẳng hạn như angular.copyangular.forEach không được ném lỗi này. Tôi đang sử dụng Jasmine 2.0 và Angular ~ 1.3. Bất kỳ lời khuyên nào về việc khắc phục sự cố này sẽ được đánh giá cao.

+0

Bạn có thể tạo lại vấn đề của mình bằng plunkr hoặc jsFiddle không? – Jan

Trả lời

6

Bạn cần cho phép truy cập vào đối tượng thực.

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

Mã đang cố gắng truy cập thuộc tính trên giá trị trả về nhưng gián điệp không trả lại bất kỳ thứ gì. Bạn không thể truy cập .off trên một đối tượng không xác định!

Các vấn đề liên quan