Ошибка Angular8 Unitest: «Автоматическое преобразование в большой двоичный объект не поддерживается для типа ответа».

#angular #unit-testing

#angular #модульное тестирование

Вопрос:

Я пишу вызов HttpGet для получения изображений в виде большого двоичного объекта, вот вызов:

       public getImage(link: string): Observable<any> {
    
        return this.http.get<any>(this.createUrl('storage/'   link ), { headers: this.createHeaders(), 
        responseType: 'blob' as 'json' });
      }
  

Это мой unittest:

   it('should get the images', () => {
    let response = {};
    service.getImage('testImage').subscribe(
      data => {
        expect(data).toEqual(response, 'should return expected data');

        const req = httpMock.expectOne(`https://api/storage/testImage`);
        expect(req.request.method).toBe('GET');
        req.flush(response);
     
      });     
  });
  

Когда я пишу тест, подобный приведенному выше, я получаю сообщение об ошибке: «Ожидаемых открытых запросов нет, найдено 1:»

Если я добавлю этот код:

const req = httpMock.expectOne( https://api/storage/testImage ); ожидать (req.request.method).toBe (‘GET’); запрос.flush(ответ);

вне подписки я получаю сообщение об ошибке: «Автоматическое преобразование в большой двоичный объект не поддерживается для типа ответа».

Кто-нибудь знает, как это исправить?

Ответ №1:

Я изменил ответ на тип большого двоичного объекта:

  let response = new Blob();
  

и это работает как шарм 😋