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
Utilisez-vous Karma? Pouvez-vous vérifier votre karma.conf.js et voir tous vos fichiers js sont inclus? – Srijith
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. –