Quando l'unità esegue il test su una fabbrica angolare (con Karma + Jasmine), come faccio a iniettare una dipendenza da stub nella fabbrica sottoposta a test?Unit test AngularJS factory che hanno dipendenze
Ecco la mia fabbrica:
mod = angular.module('myFactoryMod', []);
mod.factory('myFactory', [
'$log', 'oneOfMyOtherServices', function($log, svc) {
return makeSomethingThatDoesSomethingWithTheseDependencies($log, svc);
}
]);
oneOfMyOtherServices
è necessario quando si crea un'istanza mia fabbrica.
Ecco la mia prova:
it('can get an instance of my factory', function() {
var oneOfMyOtherServicesStub;
angular.mock.module('myFactoryMod');
oneOfMyOtherServicesStub = {
someVariable: 1
};
//****How do I get my stub in my target? ****
angular.mock.inject(['myFactory', function(target) {
expect(target).toBeDefined();
}
]);
})
N.B. So che $controller
permette questo per i controller, ma non vedo un equivalente per le fabbriche.
Sì, penso che la scelta 1 sia la strada da percorrere. Grazie! –
Mi piacerebbe iniettare myFactory in tutti i test. Può essere fatto prima? Ho provato ma non ha funzionato ... –
Grazie per questa risposta +1. Sarebbe bello aggiungere un esempio di codice anche per l'opzione n. 2, per completezza. – klode