Ich teste gerade einen eckigen Service mit Karma/Jasmin und eine meiner Service-Funktionen ist wie folgt. Ich brauche Deckung zu 100% zu erhalten, aber kann nicht scheinen, um herauszufinden, wie die beiden Erfolge und Fehlerfälle zu testen ..Wie Karma test Restangular HTTP-Aufruf mit httpbackend Test sowohl Erfolg und Fehler Fälle?
function getAccount(accountId) {
var defer = $q.defer(), myService;
myService = Restangular.all('Some/Url/Path');
myService.get('', {}, {
'header-info': 'bla'
})
.then(function onSuccess(response) {
defer.resolve(response);
}, function onError() {
someMethodCall();
});
return defer.promise;
}
In meiner .spec Testdatei entsprechen, die ich habe:
it('should succeed in getting account', function() {
httpBackend.whenGET('Some/Url/Path').respond(200, mockResponse);
var promise = myServices.getAccount('account123');
promise.then(function(response) {
expect(response).toEqual(mockResponse);
});
it('should error out in getting account', function() {
httpBackend.whenGET('Some/Url/Path').respond(500, '');
var promise = myServices.getAccount('account123');
promise.then(function() {
expect(someMethodCall).toHaveBeenCalled();
});
Gerade jetzt, beide Fälle "bestanden", aber ich bekomme nicht die Zweigabdeckung für den onError-Fall. Etwas scheint fischig zu sein, wenn der onSuccess-Fall auch passiert.
Im Grunde frage ich, was die richtige Syntax und Weise die Testfälle zu schreiben, so dass ich beide Erfolg treffen kann und auf Fehlerfällen, wenn ich eine 200 und eine 500 Aufruf an meine API
Thank you !! Funktioniert perfekt – noobprogrammer
@noobprogrammer Gern geschehen :) – tasseKATT