私はkarma/jasmineを使用してアングラサービスをテストしています。私のサービス機能の1つは次のとおりです。私は私が持っている、私の対応.specテストファイルでカルマテストの方法httpbackendを使用して、成功とエラーの両方のケースをテストするRestriction httpコール?
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;
}
... 100%にカバレッジを取得する必要がありますが、両方の成功とエラーケースをテストする方法を見つけ出すように見えることはできません。
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();
});
今のところ、どちらのケースも「合格」ですが、onErrorケースのブランチカバレッジを取得できません。 onSuccessのケースも過ぎ去ってしまったことについては何かが怪しいようです。
は基本的に私は、私はあなたドン以来200と私のAPI
をありがとう!完全に動作します – noobprogrammer
@noobprogrammerあなたは大歓迎です:) – tasseKATT