在Angular 2 中的单元测试scrollintoview((方法时,我会收到一个错误 -> "失败:无法读取属性'scrollintoview'in angular 2
这是我的scrollintoview代码:
document.getElementsByClassName('class')[0].scrollIntoView();
关于如何解决此槽的任何想法?
可能太晚了,无法回答。
这是测试document.getElementsByClassName('someDiv')[0].scrollIntoView({...})
您可以创建spyOn
spyOn(document.getElementsByClassName('someDiv')[0], 'scrollIntoView').and.callThrough();
,然后期望scrollintoview被称为
expect(document.getElementsByClassName('someDiv')[0].scrollIntoView).toHaveBeenCalled();
确保您的 document.getElementsByClassName('someDiv')[0]
在不确定的情况下添加了额外的期望:
expect(document.getElementsByClassName('someDiv')[0]).not.toBeDefined();
你好,我尝试了这种方法
- 我已经定义了要滚动到 的元素
<div #highlightsContainer>... </div>
- 我已经在组件中定义了一个视频和我过去滚动的方法
@ViewChild('highlightsContainer') highlightsContainer;
scrollToHighlightsContainer() {
setTimeout(() => { this.highlightsContainer.nativeElement.scrollIntoView(true)});
}
- 然后在我的测试中
it('should scroll', fakeAsync(() => {
component.highlightsContainer.nativeElement.scrollIntoView = jest.fn();
component.scrollToHighlightsContainer();
tick();
expect(component.highlightsContainer.nativeElement.scrollIntoView)
.toHaveBeenCalled();
}));