ben gibi, bir HTTP.post çağrısıyla bir oturum açma yöntemi için Uni-test yazıyorum:angular2 - http.post ünitesi testi hatayı simüle etmek nasıl
this.http.post(endpoint, creds, { headers: headers})
.map(res => res.json())
.subscribe(
data => this.onLoginComplete(data.access_token, credentials),
err => this.onHttpLoginFailed(err),
() => this.trace.debug(this.componentName, "Login completed.")
);
sorun ben değilim ki Hata dalını taklit edebilir; her zaman onLoginComplete Yöntemi denir;
it("check that Atfer Login, console show an error ", inject(
[TraceService, Http, MockBackend, WsiEndpointService],
(traceService: TraceService, http: Http,
backend: MockBackend, wsiEndpoint: WsiEndpointService) => {
let tokenTest: number = 404 ;
let response: ResponseOptions = null {} // i think i have to modify this
let connection: any;
backend.connections.subscribe((c: any) => connection = c);
let authService: AuthService = new AuthService(http, Service1, Service2);
authenticationservice.login({ "username": "a", "password": "1" });
connection.mockRespond(new Response(response));
expect(ERROR);
}));
tekrar teşekkürler herkese:
burada testtir. HttpService
Http
nesneyi kullanan hizmettir
describe('HttpService Tests',() => {
beforeEachProviders(() => {
return [
HTTP_PROVIDERS,
provide(XHRBackend, { useClass: MockBackend }),
HttpService
];
});
(...)
});
Bildirim o ve ben test etmek istiyorum:
Küçük bir soru gibi kullanabileceğiniz küçük sınıf
yarattı dize dışında mockError ile http durum kodu (404, 422, 500, vb)? Benim durumumda, bazı sunucu yanıtları bundan başka bir şey döndürmeyecek. Bir sebepten dolayı, herhangi bir yerde olduğunu gösteren bir örnek bulamadım. –
@LucioMollinedo mevcut RC'de desteklenmediği için. Bunu yapmak için hata düzeltmesi için https://github.com/angular/angular/pull/8961 adresine bakın. Bu arada, kötü birim testleri başka bir vuruş yapmak zorunda kalacak. – Fiddles
Bu çözümün mevcut açısal sürümüne (2.4) uygulanıp uygulanamayacağını merak ediyorum. Buraya uyarlamaya çalıştım: http://stackoverflow.com/questions/42192911/ hayır boşuna ... Birisi size tavsiyede bulunabilir mi? – balteo