簡體   English   中英

Angular:我如何在 jasmine 中測試 @HostListener?

[英]Angular: How I can test @HostListener in jasmine?

我在 angular 的組件中有下一個代碼:

@HostListener('window:scroll', []) onWindowScroll() {
  this.showScrollToTop = false;
}

我如何在茉莉花中測試這個? 如何啟動窗口滾動事件?

測試窗口:滾動:

it('should do something on window scroll', () => {
  window.dispatchEvent(new Event('scroll'));
  expect(...)....
});

您可以嘗試通過在窗口上調用scrollTo函數來使簡單的 JS 滾動。

如果你想滾動頂部,它將是:

window.scrollTo(0, 0);

更新

var scrollEvent = document.createEvent('CustomEvent');
scrollEvent.initCustomEvent( 'scroll', false, false, null );

window.dispatchEvent(scrollEvent)
 it('Focus over elements', () => {
    fixture.detectChanges();
    const event = new Event('click', { bubbles: true });
    const spyDocumentClick = spyOn(component, 'clickout').and.callThrough();
    component.clickout(event);
    expect(spyDocumentClick).toHaveBeenCalled();
 });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM