How can I mock an Observable.throw in an Angular2 test?

后端 未结 3 971
不思量自难忘°
不思量自难忘° 2021-02-18 21:54

I want to test the error handling in my Angular2 component and therefore want to mock a service to return an Observable.throw(\'error\'). How can that be done using Jasmine and

3条回答
  •  说谎
    说谎 (楼主)
    2021-02-18 22:34

    You can simply mock Observable and throw error object using Observable.throw({status: 404}) and test error block of observable.

    const xService = fixture.debugElement.injector.get(SomeService);
    const mockCall = spyOn(xService, 'xMethod')
                           .and.returnValue(Observable.throw({status: 404}));
    

    Here I am throwing http 404 error from Observable.throw({status: 404}) by mocking xMethod of xSerive in my test.

提交回复
热议问题