Angular 需要scrollIntoView函数调用的jasmine测试用例

Angular 需要scrollIntoView函数调用的jasmine测试用例,angular,unit-testing,jasmine,karma-jasmine,Angular,Unit Testing,Jasmine,Karma Jasmine,这是我想要测试的方法,但无法理解如何模拟scrollIntoView。 是否有任何文档可以帮助我理解jasmine测试。 我在说ele.scrollIntoView不是函数时出错 scrollIntoViewMethod(): void { const offsetTopDiv = '.highlight'; const ele = this.el.nativeElement.querySelector(`${offsetTopDiv}`); ele.scrollInto

这是我想要测试的方法,但无法理解如何模拟scrollIntoView。 是否有任何文档可以帮助我理解jasmine测试。 我在说ele.scrollIntoView不是函数时出错

scrollIntoViewMethod(): void {
    const offsetTopDiv = '.highlight';
    const ele = this.el.nativeElement.querySelector(`${offsetTopDiv}`);
    ele.scrollIntoView({
      behavior: 'smooth',
      block: 'center',
      inline: 'nearest',
    });
  }

据我所知,
el
是一个
ViewChild
,那么您可以模拟它的
querySelector

it('test',()=>{
//假设env已设置并准备就绪
fixture.detectChanges();
//添加间谍
const querySelectorSpy=spyOn(component.el.nativeElement,'querySelector');
//创建存根
捕快={
scrollIntoView:jasmine.crateSpy('eleSpy.scrollIntoView'),
};
//设置返回值
querySelectorSpy.and.returnValue(eleSpy);
//行动
scrollIntoViewMethod();
//断言
期望(querySelectorSpy).havebeenCalledWith('.highlight');
期望(eleSpy.scrollIntoView).已被调用({
行为:“平滑”,
块:'中心',
内联:“最近的”,
});
});

你能展示你的单元测试吗?sry alexander我不能展示给你,但我得到的错误是ele.ScrollingToView不是一个函数。谢谢你Satan的回答,可以参考jasmine测试用例的任何文档,这样我就可以深入了解它了。他们的api在这里:,在这里你可以找到示例:,这是一个旧的api,但至少有好的例子。谢谢你,撒旦,真的很感谢你的帮助。