Angular: Как написать модульный тест для переменной шаблона - PullRequest
0 голосов
/ 08 мая 2020

Я работаю с автоматической прокруткой страницы при нажатии на кнопку, и я использую переменную шаблона в качестве целевой точки. Как написать модульное тестирование для функции scrollToSecondPage с шаблоном var в качестве параметра.

app.component. html

<section>
  <p>section 1</p>
  <button (click)="scrollToSecondPage(slide2)">Go to section 2</button>
</section>  
<section #slide2>
  <p>section 2</p>
</section>

app .component.ts

scrollToSecondPage(el: any): void {
  el.scrollIntoView({ behavior: 'smooth' });
}

app.component.spe c .ts

it('should scroll down to section two', () => {
  let component = fixture.componentInstance;
  let spy = spyOn(component, 'scrollToSecondPage').and.callThrough();
  expect(spy).toHaveBeenCalled();
});

1 Ответ

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

Если вы хотите провести только модульное тестирование, это должно помочь.

import createSpy = jasmine.createSpy;

it('should scroll down to section two', () => {
  let component = fixture.componentInstance;
  const scrollSpy = createSpy('scrollIntoView')
  const el = {
    scrollIntoView: scrollSpy,
  }

  component.scrollToSecondPage(el);

  expect(scrollSpy).toHaveBeenCalledWith({ behavior: 'smooth' });
});

Вы создадите шпиона, которого сможете проверять на вызовы, которые вы передаете методу и проверяете, не был вызван компонентом впоследствии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...