在单元测试角度时测试滚动到视图

Jus*_*nda 4 testing scroll scrollview karma-runner angular

在 Angular 2+ 中对 rollintoview() 方法进行单元测试时,我收到错误 ->在 Angular 2+ 中“失败:无法读取未定义的属性‘scrollIntoView’”

这是我的滚动到视图代码:

 document.getElementsByClassName('class')[0].scrollIntoView();
Run Code Online (Sandbox Code Playgroud)

关于如何通过执行脚本解决这个问题有什么想法吗?

akh*_*uri 5

回答这个问题可能已经晚了一年。

这是测试的解决方案之一document.getElementsByClassName('someDiv')[0].scrollIntoView({...})

你可以创建一个spyOn

spyOn(document.getElementsByClassName('someDiv')[0], 'scrollIntoView').and.callThrough(); 
Run Code Online (Sandbox Code Playgroud)

然后期望scrollIntoView被调用

expect(document.getElementsByClassName('someDiv')[0].scrollIntoView).toHaveBeenCalled();
Run Code Online (Sandbox Code Playgroud)

为了确保你的document.getElementsByClassName('someDiv')[0]in 不是未定义的,添加一个额外的期望:

expect(document.getElementsByClassName('someDiv')[0]).not.toBeDefined();
Run Code Online (Sandbox Code Playgroud)