Как я могу скрыть catchError в моем тесте angular?

this.service.method().pipe(
  tap(ret=>{
   console.log('my return', ret);
  }),
 catchError(error=>{
   console.log('error occured');
   return throwError(error);
  })
).subscribe();

В своем тесте я издевался над сервисом и методом.

let serviceMock = jasmine.createSpyObj('Service',{
 method: of({message: 'success'})
})

Коды внутри крана покрыты, но не в catchError.

2
mynameisx 24 Фев 2021 в 15:37

1 ответ

Лучший ответ

Вы можете издеваться над ошибкой, как показано ниже:

let isError = false;
let serviceMock = jasmine.createSpyObj('Service',{
 method: isError ? throwError('') : of({message: 'success'})
})

Таким образом, вы можете установить isError в своих тестовых примерах либо на успех, либо на ошибку.

2
OLO 24 Фев 2021 в 12:51