que observables example ejemplo angular jasmine karma-runner

observables - ¿Cómo puedo simular un Observable.throw en una prueba Angular2?



que es un observable angular (2)

Debería create un observable, y simplemente llamar al error observador. Por ejemplo

let mockService = { error: false, data: ''something'', getData: () => { return Observable.create(observer => { if (this.error) { observer.error(new Error(..)) } else { observer.next(this.data); } observer.complete(); }) } }

Ahora para sus pruebas, puede usar el simulacro para casos de éxito y casos de error. Para un caso de error, simplemente establezca la propiedad del error en verdadero. En el caso de éxito, se llama al next con los datos.

Cuando se suscribe a un observable, puede pasar tres devoluciones de llamadas, success , error y complete

service.getData().subscribe( (data) => {} // sucess (error) => {} // error () => {} // complete )

Entonces, con el observer , al llamar a observer.next , observer.error , observer.complete , se llamará a la devolución de llamada correspondiente.

Quiero probar el manejo de errores en mi componente Angular2 y, por lo tanto, quiero simular un servicio para devolver un Observable.throw (''error''). ¿Cómo se puede hacer eso usando Jasmine y Karma y Angular 2?


Simplemente puede simular el objeto Observable throw error como Observable.throw ({status: 404}) y probar el bloque de error de observable.

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