Я недавно начал писать 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
, но не повезло. Может ли кто-нибудь помочь мне понять, что мне нужно исправить.