Ho moduli angolari:Jasmine/AngularJS: servizio dipendente da iniettare per eseguire il test dell'unità?
var app = angular.module("SearchUI",[]);
in esso, ho un servizio "configService", che mantiene il mazzo di configurazione params:
app.provider("configService",function(){
//stuff here
})
Ho eseguito il test di unità gelsomino in configService Finel
describe('configService',function(){
var configService,$httpBackend;
beforeEach(module('SearchUI'));
beforeEach(inject(function(_configService_,$injector){
configService = _configService_;
$httpBackend = $injector.get("$httpBackend");
}));
it('should have default values for configService', function(){
expect(configService.getDefaultSearch()).toEqual(['abstract','title','keyword','keywordplus'
]);
});
//other stuff
tutti i test passano bene.
tuttavia, non sto capendo come mantenere che l'iniezione in un altro servizio:
cioè nella mia domanda:
app.service("SearchService",function($http,$log,configService,$q){
//stuff
search_params = configService.getDefaultSearch();
})
mia spec:
describe('SearchService',function(){
var searchService,configService;
beforeEach(module('SearchUI'));
beforeEach(inject(function(_configService_,_SearchService_){
configService = _configService_;
searchService = _SearchService_;
}));
it('SearchService should return results', function(){
var waiting = searchService.SimpleSearch("card","wos",0);
//other stuff
le specifiche fallisce perché nel la funzione simplesearch richiede questo:
search_params = configService.getDefaultSearch(); //get the default search parameters
la mia domanda è, come faccio ad iniettare il servizio richiesto nel servizio ANOTHER?
sei sicuro che questo è il motivo per cui le tue specifiche non funzionano? A meno che non sia necessario prendere in giro il configService per cambiarne i valori, il SearchService dovrebbe averlo iniettato senza toccare il configService nei test. – lecstor
sì, fallisce con un errore che indica che il servizio di configurazione non è stato avviato – nate
Pubblica l'errore esatto che ottieni. –