3

angular コンポーネントの単体テスト中に ElementRef プロパティをモックしようとしていますが、以下のエラーが表示されます

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

以下のように、要素のネイティブ要素のプロパティをモックしようとすると、エラーが発生します

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そのエラーを作成しています。

4

1 に答える 1

1

clientWidthおよびscrollWidthjavascript の読み取り専用プロパティであり、 を使用して値を設定することはできませんSpyOn。したがって、アプリケーションの他の部分を呼び出して、これらの種類の読み取り専用プロパティを設定するという別の方法を使用する必要があります。

于 2017-11-14T20:56:17.723 に答える