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?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage