Kiedy testuję fabrykę Angulara (z karmą + jaśminem), w jaki sposób mogę wstrzyknąć zależność pośrednią do testowanej fabryki?Testowanie jednostek Fabryki AngularJS, które mają zależności:
Oto moja fabryka:
mod = angular.module('myFactoryMod', []);
mod.factory('myFactory', [
'$log', 'oneOfMyOtherServices', function($log, svc) {
return makeSomethingThatDoesSomethingWithTheseDependencies($log, svc);
}
]);
oneOfMyOtherServices
jest potrzebne przy uruchamianiu mój fabryki.
Oto moja próba:
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();
}
]);
})
nb Wiem, że $controller
dopuszcza to dla kontrolerów, ale nie widzę odpowiednika dla fabryk.
Tak, myślę, że wybór 1 jest drogą. Dzięki! –
Chciałbym wstrzyknąć myFactory do wszystkich testów. Czy można to zrobić w beforeEach? Próbowałem, ale to nie zadziałało ... –
Dzięki za tę odpowiedź +1. Byłoby miło dodać przykład kodu również dla opcji # 2, dla kompletności. – klode