mam kątowych moduły:Jasmine/AngularJS: Inject usługa zależna od usługi w teście jednostkowym?
var app = angular.module("SearchUI",[]);
w nim, mam usługę "configService", który utrzymuje kilka config params:
app.provider("configService",function(){
//stuff here
})
Mam prowadził testy jednostkowe jaśmin w 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
wszystkie testy przechodzą pomyślnie.
jednak ja nie rozumiejąc, jak utrzymać ten zastrzyk w innej usługi:
czyli w mojej aplikacji:
app.service("SearchService",function($http,$log,configService,$q){
//stuff
search_params = configService.getDefaultSearch();
})
moja specyfikacja:
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
spec powiodło się, ponieważ w Funkcja wyszukiwania uproszczonego wymaga:
search_params = configService.getDefaultSearch(); //get the default search parameters
moje pytanie brzmi: w jaki sposób mogę wprowadzić wymaganą usługę do usługi ANOTHER?
Czy jesteś pewien, że właśnie dlatego Twoja specyfikacja zawodzi? O ile nie musisz kpić z configService, aby zmienić jego wartości, usługa SearchService powinna je wprowadzić bez dotykania configService w twoich testach. – lecstor
Tak, nie powiedzie się z błędem wskazującym, że usługa konfiguracji nie została uruchomiona. – nate
Wpisz dokładny błąd, jaki otrzymasz. –