Требуется angular тестовый пример жасмина для вызова функции scrollIntoView - PullRequest
2 голосов
/ 29 мая 2020

Это метод, который я хотел протестировать, но не мог понять, как имитировать scrollIntoView. Есть ли какая-либо документация, которая может помочь мне понять тестирование жасмина. Я получаю сообщение об ошибке: ele.scrollIntoView не является функцией.

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

1 Ответ

1 голос
/ 29 мая 2020

как я понял el это ViewChild, тогда вы можете издеваться над его querySelector.

it('test', () => {
  // assuming that env is set and ready
  fixture.detectChanges();

  // adding spy
  const querySelectorSpy = spyOn(component.el.nativeElement, 'querySelector');

  // creating a stub
  const eleSpy = {
    scrollIntoView: jasmine.crateSpy('eleSpy.scrollIntoView'),
  };

  // setting the return value
  querySelectorSpy.and.returnValue(eleSpy);

  // action
  component.scrollIntoViewMethod();

  // assertion
  expect(querySelectorSpy).toHaveBeenCalledWith('.highlight');
  expect(eleSpy.scrollIntoView).toHaveBeenCalledWith({
    behavior: 'smooth',
    block: 'center',
    inline: 'nearest',
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...