【发布时间】:2017-08-07 09:56:25
【问题描述】:
目前我正在尝试了解有关在 Angular (v2+) 中进行测试的更多信息,但我一直坚持在 *ngFor 循环中测试点击事件。
这是 HTML 代码:
<div *ngIf="selectedHero">...</div>
<ul class="heroes">
<li *ngFor="let hero of heroes" (click)="onSelect(hero)" [class.selected]="hero === selectedHero">
<span class="badge">{{hero.id}}</span> {{hero.name}}
</li>
</ul>
这是 onSelect 事件:
onSelect(hero:Hero):void{
this.selectedHero = hero;
}
我有两个问题:
- 如何编写一个测试来检查点击事件是否有效?
- 如何编写一个测试,在设置变量 selectedHero 时使 div 元素可见?
提前致谢!
更新 我写了以下测试来检查点击事件:
it('should trigger a click event', () => {
fixture.detectChanges();
fixture.whenStable().then(() => {
let comp = fixture.componentInstance;
spyOn(comp, 'onSelect');
let el = fixture.debugElement.query(By.css('li')).nativeElement.click();
expect(comp.onSelect).toHaveBeenCalled();
});
});
【问题讨论】:
标签: angular typescript