Wie ändere ich den Wert einer Auswahlbox im Winkel2-Einheitentest?
Ich habe eine Angular2-Komponente, die ein Auswahlfeld enthält, das wie folgt aussieht:
<select [(ngModel)]="envFilter" class="form-control" name="envSelector" (ngModelChange)="onChangeFilter($event)">
<option *ngFor="let env of envs" [ngValue]="env">{{env}}</option>
</select>
Ich versuche, einen Komponententest für das Ereignis ngModelChange zu schreiben. Dies ist mein letzter Fehlversuch
it("should filter and show correct items", async(() => {
fixture.detectChanges();
fixture.whenStable().then(() => {
el = fixture.debugElement.query(By.name("envSelector"));
fixture.detectChanges();
makeResponse([hist2, longhist]);
comp.envFilter = 'env3';
el.triggerEventHandler('change', {});
fixture.whenStable().then(() => {
fixture.detectChanges();
expect(comp.displayedHistory).toEqual(longhist);
});
});
Der Teil, mit dem ich Probleme habe, ist das Ändern des Werts des zugrunde liegenden Modellscomp.envFilter = 'env3';
löst die Änderungsmethode nicht aus. Ich fügte hinzuel.triggerEventHandler('change', {});
aber das wirftFailed: Uncaught (in promise): ReferenceError: By is not defined
. Ich kann keine Hinweise in der Dokumentation finden ... irgendwelche Ideen?