Допустим, у нас есть простой компонент, который выполняет некоторые действия с событием изображения
<img src="{{imageUrl}}" (error)="onImageError($event)" (load)="onImageLoad()" width="{{imageWidth}}">
Теперь я хочу проверить, были ли запущены обработчики этого события.
Я попробовал самый простой подход
const spyError = spyOn(component, 'onImageError').and.callThrough();
fixture.detectChanges();
expect(spyError).toHaveBeenCalled();
Это не сработало, потому что цикл событий находится вне стека выполнения JavaSctipy.Я попытался разрешить его с помощью asyn
или fakeAsync
, но это не помогло.
Единственное отработанное решение - использовать setTimeout
внутри тестов, что мне не очень нравится.
Итак, мои вопросы
Должны ли мы вообще это проверить?Это выглядит как часть функциональности Angular / браузера.Я могу позвонить component.onImageError()
напрямую в тесте.
Как правильно проверить, был ли вызван этот обработчик событий?