¿Cómo cambiar el valor de un cuadro de selección en la prueba de unidad angular2?

Tengo un componente Angular2 que contiene un cuadro de selección que se parece a

<select [(ngModel)]="envFilter" class="form-control" name="envSelector" (ngModelChange)="onChangeFilter($event)">
    <option *ngFor="let env of envs" [ngValue]="env">{{env}}</option>
</select>

Estoy tratando de escribir una prueba unitaria para el evento ngModelChange. Este es mi último intento fallido

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);
        });
    });

La parte con la que tengo problemas es que cambiar el valor del modelo subyacentecomp.envFilter = 'env3'; no activa el método de cambio. yo añadíel.triggerEventHandler('change', {}); pero esto arrojaFailed: Uncaught (in promise): ReferenceError: By is not defined. No puedo encontrar ninguna pista en la documentación ... ¿alguna idea?

Respuestas a la pregunta(3)

Su respuesta a la pregunta