【发布时间】:2019-01-04 23:24:15
【问题描述】:
我一直在尝试对包装 Promise 的 Observable 中的错误处理进行单元测试,但我似乎根本无法让它捕捉到错误。
我正在从一个只会拒绝的承诺中设置一个可观察的,然后我从 spyOn 中返回它。这适用于正确解决的承诺,但在拒绝时,我收到错误:'错误:未捕获(承诺中):错误'
我的代码:
it(
'should not change status if unsucessful',
fakeAsync(() => {
const obs = from(
new Promise(resolve => {
return Promise.reject('error');
})).pipe(catchError( (error) => {
console.log('oh no');
return of(error);
}));
spyOn(
mockService,
'ChangeStatusToAvailable'
).and.returnValue(obs);
component.SetStatusToAvailable();
tick(200);
fixture.detectChanges();
console.log(component._status);
expect(component._status).toBe(AgentStatus[AgentStatus.disconnected]);
})
);
感谢您的帮助!
【问题讨论】:
标签: javascript angular promise rxjs observable