gpt4 book ai didi

unit-testing - Angular 2. 在单元测试中发出悬停事件

转载 作者:行者123 更新时间:2023-12-03 14:27:28 26 4
gpt4 key购买 nike

我有一些(MyCmp)组件(<my-cmp></my-cmp>)的模板,像这样

<template ngFor let-r [ngForOf]="range" let-index="index">
<span>{{ index < 5 ? 'Y' : 'N' }}, {{r.data}}</span>
<i (mouseenter)="somefunc()" (click)="elefunc()"></i>
....
</template>

我通过特殊的 TestComponent 为 MyCmp 组件配置 TestBed
TestBed.configureTestingModule({declarations: [TestComponent], imports: [MyModule]}
TestBed.overrideComponent(TestComponent, {set: {template: '<my-cmp></my-cmp>'}});
fixture = TestBed.createComponent(TestComponent);
context = fixture.debugElement.componentInstance;
element = fixture.nativeElement;
fixture.detectChanges();

我认为这并不重要。测试有效。
element.querySelectorAll('i')[0].click(); //fine

但我不知道我应该如何发出 hover(mouseenter) 和 mouseleave 事件
element.querySelectorAll('i')[0].hover() // not a function
element.querySelectorAll('i')[0].mouseover() // not a function
element.querySelectorAll('i')[0].createMouseEvent('mouseover') // not a function

最佳答案

如果您对此没有答案,可以通过以下方式使用 nativeElement 的 dispatchEvent:

element.dispatchEvent(new MouseEvent('mouseover', {
view: window,
bubbles: true,
cancelable: true
}));

关于unit-testing - Angular 2. 在单元测试中发出悬停事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40804671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com