在我的Angular
应用程序中,我通过以下方式使用Observables
:
getItem(id): Observable<Object> {
return this.myApi.myMethod(...).catch(e => {
/* CATCH BODY */
return Observable.throw(e);
});
}
我对它进行单元测试:
it('getItem(...) should correctly do its job',
inject([MyService], (service: MyService) => {
const spy = spyOn(myApi, 'myMethod').and.returnValue(mockObservable);
const mockData = 'mock'; // can be anything
const mockObservable = Observable.of(mockData);
service.getItems().subscribe((data) => {
expect(data).toEqual(mockData);
});
expect(spy).toHaveBeenCalledWith(...);
})
);
但是,我不知道如何对CATCH BODY
进行单元测试,如何模拟observable
抛出错误?
我知道已经提出了类似的问题,但我的情况略有不同,我无法成功测试捕获部分。