由于spyOn
没有执行,我有一个Jasmine测试不断失败。
以下测试将自动失败:
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
var chart = c3.generate({
data: {
columns: [
['data1', 30, 200, 100, 400, 150, 250],
['data2', 130, 100, 140, 200, 150, 50]
],
type: 'bar'
},
bar: {
width: {
ratio: 0.5 // this makes bar width 50% of length between ticks
}
// or
//width: 100 // this makes bar width 100px
}
});
不会抛出此错误。我正在使用Jasmine 2.0和Angular~1.3。任何有关解决这个问题的建议都将受到赞赏。
答案 0 :(得分:6)
您需要允许访问真实对象。
spyOn(angular, 'element').and.callThrough();
代码试图访问返回值的属性,但是间谍没有返回任何内容。您无法访问未定义对象的.off
!