Erste Einheit Testfälle in der MitteRegistrieren von Dienstleistungen in einem Modul und einschließlich von abhängigen Module in Jasmin
Fest mit jasmine.But schreiben Ich habe ein Modul namens „app“ es in einer js-Datei mit Konfigurations deklariert und laufen Blöcke ,,, in der gleichen Datei, während ein Modul zu schaffen, erwähnen i seine dependeny Module als auch ...
var app; ------> it is declared as a global variable
app=angular.module('app,['ngSanitize','Deepak']);
app.run(['$rootScope', '$window', '$anchorScroll', '$timeout', 'resources', function($rootScope, $window, $anchorScroll, $timeout, resources)
dann in anderen js Dateien, in denen Controller app.js, Fabrik , Dienstleistungen und düster ctives geschaffen werden, unter Linien
wurden verwendet, umangular.module('app').factory
angular.module('app').controller
angular.module('app').service
angular.module('app').filter
So bedeutet es am Hinzufügen der Regler, Filter, Betriebs- und Service an das bestehende Modul namens ‚App‘
nun eine Einheit Testfall erstellen werde, das Modul wie unten
DemoToTheTeam.js
beforeEach(function() {
angular.module('app');
});
Ist die obige Zeile bedeutet, es auch bin Laden lo ading 'Deepak' und 'ngSanitize' Modul auch (wie es als eine Abhängigkeit früher an der Spitze erklärt wurde)
Und egal wie oft ich renne geben die relativen Pfade aller js-Dateien in meiner Anwendung nach eckigen -mock Dateien im karma.conf.js..It ist nach wie vor nicht in der Lage, die Fabrik Service
zu injizieren es einfach Unknown Anbieter mit dem Service name..Along mit Erklärung Fehlern zeigt, wie unten
Error: [$injector:unpr] Unknown provider: InformationServiceProvider <- InformationService
http://errors.angularjs.org/1.5.6/$injector/unpr?p0=ServiceProvider%20%3C-%20InformationService
at C:/jasmine/project/node_modules/angular/angular.js:68:12
at C:/jasmine/project/node_modules/angular/angular.js:4501:19
at Object.getService [as get] (C:/jasmine/project/node_modules/angular/angular.js:4654:39)
at C:/jasmine/project/node_modules/angular/angular.js:4506:45
at Object.getService [as get] (C:/jasmine/project/node_modules/angular/angular.js:4654:39)
at Object.<anonymous> (C:/jasmine/project/tests/DemoToTheTeam.js:79:25)
at Object.invoke (C:/jasmine/project/node_modules/angular/angular.js:4708:19)
at Object.workFn (C:/jasmine/project/node_modules/angular-mocks/angular-mocks.js:3071:20)
Error: Declaration Location
at window.inject.angular.mock.inject (C:/jasmine/project/node_modules/angular-mocks/angular-mocks.js:3033:25)
at Suite.<anonymous> (C:/jasmine/project/tests/DemoToTheTeam.js:78:12)
at C:/jasmine/project/tests/DemoToTheTeam.js:2:1
Bin verwirrt darüber, warum mein Dienst nicht anerkannt und verspottet wird ??? Gibt es irgendeinen Hinweis darauf, warum dies geschieht, obwohl ich den korrekten relativen Pfad der js-Dateien in der Karma-Datei angegeben habe?
In einigen Stellen habe ich gesehen, dass auch die Dienste, die Steuerung und Richtlinien, die im Testfall geladen werden können
angular.module('app')['_invokeQueue'].forEach(function(value){
console.log(value[1] + ": " + value[2][0]);
})
Aber ich sehe nur wenige Dienste in der Konsole gedruckt werden, und nicht alle geladen Dienste werden geladen, aber alle werden mit angular.module ('app') erstellt. factory syntax -> erstellt im vorhandenen Modul..kann nicht herausfinden, warum bestimmte Dienste nicht geladen werden, obwohl ich seinen relativen Pfad in der Karma-Datei
Dies ist mein Werksdienst (LanguagesService .js)
angular.module('app').factory('LanguagesService', function(){
var lng = {},
_languages = ['en', 'es', 'fr'];
lng.get = function() {
return _languages;
}
return lng;
});
Bin Schaffung der oben Fabrik-Service in einem vorhandenen Modul
Spec-Datei
describe('Test LanguagesService ', function() {
var mockService;
beforeEach(function() {
angular.module('app');
});
beforeEach(inject(function ($injector) {
mockService = $injector.get('LanguagesService');
}));
it('Should call foo fn', function() {
mockService.getmessages();
});
});
Es hat keine abhängigen Dienst .. – user2918673
Ja Added die Spec-Datei – user2918673
Zuvor hatte der Name der Fabrik Service in den Fehler log..No bin immer Fehler ich erhielt: [$ Injektor: UNPR] Unknown provider: resourcesProvider <- resources ------> ohne den Factory-Service-Namen – user2918673