我们有一个下拉组件,该组件的下拉菜单在任何外部点击时都会折叠。这实现为:
@HostListener('document:click', ['$event'])
public documentClick(event) {
if (this.dropdownIsOpen && !event.clickedFromMe) {
this.dropdownIsOpen = false;
}
}
Run Code Online (Sandbox Code Playgroud)
如何测试此代码?使用时TestBed.createComponent,似乎只创建了该组件,而该组件不在任何文档中,那么如何模拟该组件外部的单击?
用途document.dispatchEvent:
it('should handle document click', () => {
component.dropdownIsOpen = true;
document.dispatchEvent(new MouseEvent('click'));
expect(component.dropdownIsOpen).toBe(false);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1085 次 |
| 最近记录: |