2013-06-26 13 views
9

ho un servizio sul mio modulo someModule:Configurazione fornitore di servizi angolare nella prova di Jasmine

someModule.provider('someService', function() { 
    this.options = {}; 
    this.$get = function() { 
     return options; 
    }; 
}); 

sto scrivendo una specifica, e finora ho la seguente:

beforeEach(mocks.module('directives', ['someModule'])); 

beforeEach(function() { 
    directives.config(function (someServiceProvider) { 
     someServiceProvider.options({ foo: 'bar' }); 
    }); 
}); 

ho bisogno di configurare il mio servizio someService prima di ogni test nella mia specifica. Tuttavia, il seguente codice genera un errore: Error: Unknown provider: someServiceProvider

Cosa sto facendo in modo errato? Ho pensato che se avessi richiesto un modulo, tutti i provider disponibili su quel modulo sarebbero stati "ereditati"? Come posso configurare lo options nel mio servizio someService in questo test?

risposta

18

Nel momento in cui si chiama la funzione di configurazione il modulo è in fase di esecuzione. A quel punto non è più possibile iniettare un fornitore. Prova a spostare la funzione su cui è stato iniettato unServiceProvider.

beforeEach(module('myModule', function(someProvider) { 
    someProvider.configure(1); 
})); 

it('should work now', inject(function(some) { 
    expect(some.func()).toBeAvailable(); 
})); 
Problemi correlati