Im Moment versuche ich mehr über Tests in Angular (v2 +) zu lernen, aber ich bin beim Testen von Klickereignissen in einer * ngFor-Schleife fest.Winkeltest Klickereignis
Dies ist der HTML-Code:
<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>
Dies ist onSelect Ereignis:
onSelect(hero:Hero):void{
this.selectedHero = hero;
}
ich zwei Fragen:
- Wie man einen Test schreiben, wenn überprüft Das Klickereignis funktioniert?
- Wie schreibe ich einen Test, der das div-Element sichtbar macht, wenn die Variable selectedHero gesetzt ist?
Vielen Dank im Voraus!
aktualisieren Ich schrieb den folgenden Test das Click-Ereignis zu überprüfen:
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();
});
});
Vielen Dank für mich in die richtige Richtung schieben! Ich habe ein paar Änderungen an Ihrem Code vorgenommen und es funktioniert jetzt wie ein Zauber :) – Stefan
toll) Sie können dann meine Antwort akzeptieren oder upvoten, wenn es geholfen hat) –