2016-07-11 1 views
1

Je suis en train d'essayer de développer un service angulaire que j'écris en utilisant Jasmine. Cependant, il semble que je sois tombé sur le premier obstacle, et je ne peux pas résoudre ma dépendance aux ressources.Injection de dépendances dans les services Angular pour les tests

L'erreur que je reçois est fournisseur inconnu: $ resourceProvider < - ressource $ < - lookupService

Mon code est le suivant

Module:

(function() { 
'use strict'; 

angular 
    .module('common', ['ngSanitize', 'ngAnimate']); 
})(); 

Service:

(function() { 
'use strict'; 

angular 
    .module('common') 
    .service('lookupService', lookupService); 

lookupService.$inject = ['$resource', 'api']; 

function lookupService($resource, api) { 
    return { 
     getLookup: getLookup 
    }; 

    function getLookup() { 
     return "something"; 
    } 
} 

})(); 

Test:

describe('Service tests', 
function() { 

    var lookupService, mockApi, $httpBackend; 

    //mocks 
    beforeEach(function() { 
     mockApi = { getUri: jasmine.createSpy() }; 

     angular.mock.module('common', 
      function ($provide) { 
       $provide.value('api', mockApi); 
      }); 
    }); 


    //injects 
    beforeEach(function() { 
     inject(function ($injector) { 
      $httpBackend = $injector.get('$httpBackend'); 
      lookupService = $injector.get('lookupService'); 
     }); 
    }); 



    //tests 
    it('should be able to return something', 
     inject(function() { 
      expect(lookupService.getLookup()).toEqual("something"); 
     })); 

});//Service tests 

Le fichier angular-resource.js est inclus dans mon fichier runner. Je ne sais pas où je me trompe, toute aide serait appréciée.

Merci

+0

Utilisez-vous Karma? Pouvez-vous vérifier votre karma.conf.js et voir tous vos fichiers js sont inclus? – Srijith

+0

Je suis juste en train de les utiliser en utilisant Jasmine autonome. Le module, service, test et tous les fichiers anguarjs sont inclus dans le fichier SpecRunner. –

Répondre

1

ngResource doit être une dépendance:

(function() { 
'use strict'; 

angular 
    .module('common', ['ngSanitize', 'ngAnimate', 'ngResource']); 
})(); 
+0

Ahhhh! Bien sûr! –