Неперехваченная ошибка типа: Не удается прочитать свойство «фильтр» неопределенного брошенного модульного тестирования.

#javascript #typescript #karma-jasmine

Вопрос:

У меня есть эта ошибка при модульном тестировании с помощью jasmine:

Неперехваченная ошибка типа: Не удается прочитать свойство «фильтр» неопределенного брошенного

Моя функция:

 info() {
  this.requestService.postRequest('Reports', 'getInfo', {})
   .subscribe(
    data => {
      this.places = data.places;
      this.types = data.types.filter(obj => obj.id != 20);
      this.loading = false;
    },
    error => {
      console.log(error);
      this.loading = false;
    });
  };
 

Испытание:

 it('When call requestService.postRequest', () => {
  
  spyOn(component.requestService, 'postRequest').and.returnValue(of({}));
  
  component.info();
  
  expect(component.requestService.postRequest).toHaveBeenCalled();
  expect(component.requestService.postRequest).toHaveBeenCalledTimes(1);
});
 

Ответ №1:

data Объект, похоже, не обладает types свойством (или places свойством, если на то пошло. Похоже, тебе нужно измениться

 spyOn(component.requestService, 'postRequest').and.returnValue(of({}));
 

Для

 spyOn(component.requestService, 'postRequest').and.returnValue(of({
  places: [],
  types: []
}));
 

Комментарии:

1. Пожалуйста, отметьте этот ответ как правильный, если он решает проблему. 🙂