2016-08-03 3 views
0

Ich habe Probleme beim Zugriff auf meine Dienste und Filter in Komponententests (ich habe Richtlinien noch nicht probiert). Ich habe bereits Komponententests geschrieben, aber da ich in die Konfiguration unserer Builds gewechselt bin, habe ich Probleme beim Zugriff auf unsere neuen Dienste, um Komponententests zu schreiben. Ich bekomme ständig TypeError: null is not an object (evaluating 'currentSpec.$modules') in.... Ich habe etwas gelesen und es sieht so aus, als ob es mit den Knotenpaketen, die ich benutze, zu tun haben könnte. Ich habe mich gefragt, ob die größere Gemeinschaft sicherstellen könnte, dass diese Konfigurationen korrekt aussehen. Ich habe die Dateien unten gekürzt.Einheit Testing Services in Angular mit Jasmine, Karma und ng-Mock

Mit der aktuellen Konfiguration ist dies ein Fehler.

package.json

"devDependencies": { 
    "angular": "1.5.7", 
    "angular-mocks": "1.5.7", 
    "jasmine": "2.4.1", 
    "jasmine-core": "2.4.1", 
    "karma-browserify": "5.1.0", 
    "karma-chrome-launcher": "1.0.1", 
    "karma-jasmine": "1.0.2", 
    "karma-nyan-reporter": "0.2.4", 
    "karma-phantomjs2-launcher": "0.5.0", 
    "phantomjs2": "2.2.0" 
} 

karma.conf.js

module.exports = function(config) { 
    config.set({ 

    basePath: '', 

    frameworks: ['browserify', 'jasmine'], 

    files: [ 
     'app/main.js', 
     'app/modules/**/*.spec.js', 
     'app/shared/**/**/*.spec.js' 
    ], 

    preprocessors: { 
     'app/main.js': ['browserify'], 
     'app/modules/index.js': ['browserify'], 
     'app/shared/index.js': ['browserify'], 
     'app/modules/**/*.spec.js': ['browserify'], 
     'app/shared/**/**/*.spec.js': ['browserify'] 
    }, 
    }) 
} 

service.spec.js

describe('Unit: Services', function() { 
    require('angular-mocks/ngMock'); 

    var APIHelper; 

    beforeEach(function() { 
    angular.mock.module('app.common.services'); 
    }); 

    beforeEach(inject(function(apiHelperService) { 
    APIHelper = apiHelperService; //injection is what's breaking 
    })); 

    it('should exist', function() { 
    expect(APIHelper).toBeDefined(); 
    }); 

}); 

Th Die Dienste und Spezifikationen werden geladen und in der richtigen Reihenfolge. Dieser Dienst hat keine Abhängigkeiten. Ich nehme an, dass ich die gleichen Fehler bekomme, wenn ich Dienstabhängigkeiten injizieren muss, aber wenn ich die Injektionen herausfinden kann, kann ich die richtigen Dienste injizieren, wie ich sie brauche.

// This worked in a controller 
angular.mock.inject(function GetDependencies(service) { 
    service = service; 
}); 

Vielen Dank im Voraus, dass Sie sich die Zeit genommen haben, dies zu prüfen und möglicherweise eine Frage zu beantworten.

-W

Antwort

0

Ich war darunter nicht require('angular-mocks/ngMock') in meiner app Erklärung. Manchmal sind es die kleinen Dinge.

+0

Hey Kumpel, können Sie es als Antwort akzeptieren, so dass diese Frage geschlossen wird – dreamweiver

Verwandte Themen