Я написал тест в Жасмине, чтобы показать предупреждение, когда существует какая-либо ошибка для определенного сервиса.Рассматриваемый код находится внутри компонента и, по сути, служит для отображения предупреждения.
Я пробовал несколько методов, начиная от предоставления запроса с GET и предоставления URI для пути API - затем используя его для сброса.Я проверил это с и без whenStable (), но не повезло.
it('should show alert when an error for service exists', () => {
spyOn(alertService, 'showAlert').and.callThrough();
spyOn(someService, 'getStuff').and.returnValue(new Error());
const input = fixture.debugElement.query(By.css('#search'));
input.nativeElement.value = 'something';
input.nativeElement.dispatchEvent(new Event('input'));
fixture.whenStable().then(() => {
expect(alertService.showAlert).toHaveBeenCalled();
});
});
Я ожидаю появления предупреждения при возникновении ошибки.Этот тест проходит, однако, если я добавлю вместо него '.not.toHaveBeenCalled ()', тест также пройдет.Трассировка стека не выдает ошибку, но показывает «ОШИБКА:« Необработанный отказ от обещания: »,«: ожидал шпиона, но получил функцию ».
Видите ли вы что-то, что выделяется, что я должен исправить в предыдущей логике?
Просто чтобы уточнить, рассматриваемый код находится в ngOnInit внутри компонента и является исключением для получения 'вещи "из службы.