Sto scrivendo unit test per un servizio angular2. Frammenti di codice:come simulare l'errore http per il test angular2
// jasmine specfile
// already injected MockConnection into Http
backend.connections.subscribe ((c: MockConnection) => {
connection = c;
});
// doing get-request
myServiceCallwithHttpRequest().subscribe (result => {
// this test passes!
expect (result).toEqual ({
"message": "No Such Object"
});
// this test fails, don't know how to get the response code
expect (whereIsResponseStatus).toBe (404);
});
connection.mockRespond (new Response (new ResponseOptions ({
body: {
"message": "No Such Object"
},
status: 404
})));
mio servizio:
// service
myServiceCallwithHttpRequest(): Observable<Response> {
return this.http.get ('/my/json-service').map (res => {
// res.status == null
return res.json()
})
.catch (this.handleError); // from angular2 tutorial
}
Il primo si aspettano è OK, il programma va in chiamata carta, non è la cattura. Ma come ottengo il codice di stato 404? res.status è nullo.
Non ha funzionato per me, questo ha attivato il 'NextObserver' invece di' ErrorObserver' nella funzione 'subscribe'. – Gabriel
stesso qui, questo non chiama il caso di gestione osservabile fallito – sam