Angular:我如何在jasmine中测试@HostListener?
我在angular的组件中有下一个代码:Angular:我如何在jasmine中测试@HostListener?,angular,unit-testing,jasmine,Angular,Unit Testing,Jasmine,我在angular的组件中有下一个代码: @HostListener('window:scroll', []) onWindowScroll() { this.showScrollToTop = false; } 我如何在茉莉花中测试这个?如何启动窗口滚动事件?您可以通过调用窗口上的scrollTo函数来尝试进行简单的JS滚动 如果您想在顶部滚动,它将是: window.scrollTo(0, 0); 更新 var scrollEvent = document.createEvent('
@HostListener('window:scroll', []) onWindowScroll() {
this.showScrollToTop = false;
}
我如何在茉莉花中测试这个?如何启动窗口滚动事件?您可以通过调用窗口上的
scrollTo
函数来尝试进行简单的JS滚动
如果您想在顶部滚动,它将是:
window.scrollTo(0, 0);
更新
var scrollEvent = document.createEvent('CustomEvent');
scrollEvent.initCustomEvent( 'scroll', false, false, null );
window.dispatchEvent(scrollEvent)
测试窗口:滚动:
it('should do something on window scroll', () => {
window.dispatchEvent(new Event('scroll'));
expect(...)....
});
谢谢你的回复。但不幸的是,这不会触发“onWindowScroll”,您是否可以尝试使用
滚动
名称创建自定义事件?正在更新我的答案。但是如何指定要滚动的数量?
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();
});