Un espoir question simple sur AngularJS des tests unitaires. J'ai un contrôleur à l'aide d'un simple service (adapté angulaires-projet de semences)
services.js:
angular.module('myApp.services', []).value('version', '0.1');
controllers.js:
function MyCtrl1($s, version) {
$s.version = version;
}
MyCtrl1.$inject = ["$scope","version"];
Cela fonctionne très bien im mon application. Cependant, j'ai du mal à créer le contrôleur de l'unité de test de cadre de travail. Je ne peux pas comprendre notre façon d'injecter "version" de service (ou de créer une instance) et de le passer à $controller() de l'usine - je suppose que c'est ce que je veux faire?! Voici le squelette spec:
controllerSpec.js:
beforeEach(inject(function($rootScope, $controller) {
scope = $rootScope.$new();
// how about version service?
ctrl = $controller(MyCtrl1, {$scope: scope, /* version: <where from?> */});
}));
it('Version should be 0.1 ...', function() {
expect(scope.version).toBe('0.1');
});
L'exécution de l'atelier de test, on obtient: >test.sh
... a échoué (3.00 ms): Erreur: Erreur: Unknown fournisseur de: versionProvider <- version Erreur: Inconnu fournisseur de: versionProvider <- version
J'ai essayé différentes choses avec $injecteur/$fournisseur et le module (), mais en vain. Je suis sûr que la réponse est simple, mais je ne peux pas le voir.