DispatchEvent () не работает для замены ионов - PullRequest
0 голосов
/ 17 июня 2019

Я недавно начал писать Unit Test для своего проекта Ionic (3.9.2). Мне нужно выбрать ion-option, используя файл спецификации. Но выдает ошибку.

file.ts

this.NameArr = ["Mark","David","Josh"]
onMethodSelection(val){
    this.value = val;
}

Html

<ion-select id="selectorList" interface="popover" [(ngModel)]="selected_value"(ionChange)="onMethodSelection(selected_value)">
    <ion-option *ngFor="let name of NameArr">
        {{name}}
    </ion-option>
</ion-select>

spec.ts

it('Should change dorpdown value ',async()=> {
    spyOn(component,"onMethodSelection");
    component.selected_value = component.NameArr[1];
    fixture.detectChanges();
    const select = fixture.debugElement.query(By.css('#selectorList'));
    fixture.whenStable().then(() => {
        dispatchEvent(select.nativeElement, 'onChange'); => Line num:6
        fixture.detectChanges();
        fixture.whenStable().then(() => {
            expect(comp.onMethodSelection).toHaveBeenCalledWith('David');
        });
    });
})

Выдает ниже ошибки:

zone.js: 675 Необработанный отказ от обещания: не удалось выполнить dispatchEvent для EventTarget: параметр 1 не относится к типу Event. ; Зона: ProxyZone; Задача: Promise.then; Значение: TypeError: Не удалось выполнить dispatchEvent для EventTarget: параметр 1 не относится к типу Event. на search-type.spec.ts: 6

и я попытался заменить change событие на onChange и ionChange, но не повезло. Может ли кто-нибудь помочь мне понять, что мне нужно исправить.

...