【发布时间】:2017-05-30 21:34:12
【问题描述】:
我在 Angular 的组件中有下一个代码:
@HostListener('window:scroll', []) onWindowScroll() {
this.showScrollToTop = false;
}
如何在 jasmine 中进行测试?如何发起窗口滚动事件?
【问题讨论】:
标签: angular unit-testing jasmine
我在 Angular 的组件中有下一个代码:
@HostListener('window:scroll', []) onWindowScroll() {
this.showScrollToTop = false;
}
如何在 jasmine 中进行测试?如何发起窗口滚动事件?
【问题讨论】:
标签: angular unit-testing jasmine
测试窗口:滚动:
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)
【讨论】:
scroll 名称创建自定义事件吗?更新我的答案。
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();
});
【讨论】: