2014-05-09 3 views
13

Ich bin sicher, das hat etwas mit angular-mock.js zu tun, aber ich kann nicht herausfinden, was ich tun muss, da alles in Ordnung zu sein scheint. Ich gehe nur von der Standard-Setup von Angular-Seed-App. Bitte helfen das ProblemWinkel ist nicht definiert Fehler beim Karma-Test aufgerufen

karma.conf.js

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

    basePath : '../', 

    files : [ 
     'bower_components/angular/angular.js', 
     'bower_components/angular-route/angular-route.js', 
     'bower_components/angular-mocks/angular-mocks.js', 
     'app/js/**/*.js', 
     'test/unit/**/*.js' 
    ], 

    autoWatch : true, 

    frameworks: ['jasmine'], 

    browsers : ['Chrome'], 

    plugins : [ 
      'karma-chrome-launcher', 
      'karma-firefox-launcher', 
      'karma-jasmine' 
      ], 

    junitReporter : { 
     outputFile: 'test_out/unit.xml', 
     suite: 'unit' 
    } 

    }); 
}; 

controllers.js

'use strict'; 
/* Controllers */ 

var app = angular.module('myApp.controllers', []); 
app.constant('RESTURL', 'http://'+ location.hostname + ':8003'); 

app.controller('MainCtrl', ['$scope', 'dataService', 'flash', 'mySharedService','facetSearchService', 'facetSelectionService', 'RESTURL', function($scope, dataService, flash, sharedService, facetSearch, facet, RESTURL) { 
     $scope.RESTURL = RESTURL; 
     $scope.loading = true; 
     $scope.data = null; 
     $scope.resultCount = 0; 
     $scope.currentPage = 0; 
     $scope.pageSize = 10; 

      .... 
])} 

controllerSpec.js

'use strict'; 

/* jasmine specs for controllers go here */ 

describe('controllers', function(){ 
    beforeEach(module('myApp.controllers')); 


    it('should test MainCtrl', inject(function($controller) { 
    //spec body 
    var scope = {}, 
    ctrl = $controller('MainCtrl', {$scope:scope}); 

    expect($scope.RESTURL).toBe('http://'+ location.hostname + ':8003')); 
    })); 


}); 
loswerden Dateistruktur

Projekt: enter image description here

Antwort

13

Ich vertraue dir ran "Bower installieren", um die Abhängigkeiten zu installieren?

Die Pfade zu bower_components sind falsch. Ein Basispfad von "../" lässt Karma in der Wurzel Ihres Projekts aussehen, aber Ihre bower_components befinden sich in Ihrem "app" -Ordner. Die "Dateien" in der karma.conf müssen mit "app" vorangestellt sein.

+0

ja ich habe alle Abhängigkeiten installiert & ich sehe die Datei 'angular-mocks.js' sowie – Sudhakar

+0

Es könnte Ihr basePath sein. Sofern Sie einige Ordner nicht geändert haben, sollten sie leer bleiben. – jdewit

+1

Ich habe keine Änderungen an der Projektstruktur vorgenommen, da es sich bei meinem ersten eckigen Projekt nicht um alberne Änderungen handeln sollte, die ich nicht kenne – Sudhakar