如何对我的Observable的捕获体进行单元测试

时间:2017-11-27 13:31:32

标签: javascript unit-testing jasmine rxjs angular-observable

在我的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抛出错误?

我知道已经提出了类似的问题,但我的情况略有不同,我无法成功测试捕获部分。

0 个答案:

没有答案