Я работаю над приложением Angular 9 и пишу юнит-тесты благодаря шутке. Моя служба angular вызывает Spring API, который возвращает CSV-файл для загрузки. Я хотел бы провести модульное тестирование, но я не могу издеваться над HttpResponse.
* MyService.ts *
downloadCsv(id: string) {
return this.http.get('/api/ + id + `/csv/`,
{ responseType: 'blob' as 'json', observe: 'response' });
}
* MyService.spe c .ts *
it(`should call the GET API and return a csv file as result`, () => {
// GIVEN
const expectedData: Blob = new Blob(['a', 'b', 'c', 'd']);
// WHEN
let actualData = {};
service.downloadCsv('1').subscribe(data => {
actualData = data;
});
// THEN
backendMock.expectOne((req: HttpRequest<any>) => {
return req.url === `/api/` + '1' + `/csv/`
&& req.method === 'GET';
}, `GET data to ${'/api/'}`)
.flush(expectedData);
expect(actualData).toEqual(expectedData);
});
Я не знаю, как создать HttpResponse, содержащий большой двоичный объект, даже когда я пытаюсь вставить новый HttpResponse в Ожидаемые данные (я не нахожу очень много примеров, и do c действительно не помогает мне: / ( документация HttpResponse ))
Ответ, который я жду, выглядит следующим образом:
кто-нибудь может мне помочь?