错误:在http:// localhost:9877node_modules / jasmine-core / lib / jasmine-core / jasmine.js中没有声明clientWidth可配置(第4410行)

时间:2017-10-18 20:54:52

标签: angular karma-jasmine angular-test

我正在尝试模拟ElementRef属性,同时单元测试我的角度组件,它给我下面的错误

Error: clientWidth is not declared configurable in http://localhost:9877node_modules/jasmine-core/lib/jasmine-core/jasmine.js (line 4410)

我在尝试模拟元素的native元素属性时遇到错误,如下所示

const div = fixture.debugElement.query(By.css('.ellipsis-overflow'));
div.triggerEventHandler('mouseover', null);
fixture.detectChanges();
expect(component.tooltip.isOpen()).toBeFalsy();
spyOnProperty(div.nativeElement, 'clientWidth', 'get').and.returnValue(1400);
spyOnProperty(div.nativeElement, 'scrollWidth', 'get').and.returnValue(2400);

spyOnProperty正在创建该错误。

1 个答案:

答案 0 :(得分:0)

clientWidthscrollWidth是javascript的只读属性,无法使用SpyOn设置值。所以你需要通过调用应用程序的其他部分来设置这些只读属性。