Ich schreibe Komponententests für einen angular2 Service. Code-Schnipsel:wie HTTP-Fehler für angular2 Test zu spotten
// 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
})));
mein Service:
// 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
}
Die erste erwarten OK ist, geht das Programm in die Karte Aufruf, nicht der Haken. Aber wie bekomme ich den Statuscode 404? res.status ist null.
Hat nicht funktioniert für mich, Dies löste den "NextObserver" anstelle von "ErrorObserver" in der "subscribe" -Funktion aus. – Gabriel
das gleiche hier, dies nennt nicht den gescheiterten beobachtbaren Fall – sam