#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();
и это работает как шарм 😋