2015-08-05 31 views
21

Sto provando a scrivere un test per il mio controller Angolare, sto usando jasminekarma e angular-mocks, ma continua a ricevere l'errore ReferenceError: Can't find variable: module.ReferenceError: Impossibile trovare la variabile: modulo in prova angolare

Avevo un po 'di search, ma ho già il angular-mocks nella mia pergola.

Cosa potrei mancare qui?

Quanto segue è il mio codice:

#controller 
angular.module('cook_book_ctrl', []) 
.controller('cookBookCtrl', function($scope, CookBook, CookBookRecipesService){ 

    $scope.cookbookoptions = true; 

    CookBook.list() 
    .success(function(data){ 
    $scope.recipeList = data; 
    CookBookRecipesService.loadCookBookRecipes($scope.recipeList); 
    }) 
    .error(function(error){ 
    }) 
    }); 

#controller test 
describe('CookBook controller spec', function(){ 
    var $httpBackend, $rootScope, createController, authRequestHandler 

    beforeEach(module('cook_book_ctrl')); 
}) 

#bower.json 
{ 
    "name": "HelloIonic", 
    "private": "true", 
    "devDependencies": { 
    "ionic": "driftyco/ionic-bower#1.0.0", 
    "ionic-service-analytics": "master", 
    "ionic-service-core": "~0.1.4", 
    "angular-mocks": "1.3.13" 
    }, 
    "dependencies": { 
    "ng-cordova-oauth": "~0.1.2", 
    "ng-tags-input": "~2.3.0", 
    "angular": "~1.4.0", 
    "underscore": "~1.8.3", 
    "materialize": "~0.97.0" 
    }, 
    "resolutions": { 
    "angular": "~1.4.0" 
    } 
} 


    beforeEach(module('cook_book_ctrl')); 
}) 

UPDATE: Screenshot aggiunto per chiarezza

enter image description here

risposta

33

Oltre l'installazione angular-mocks attraverso gazebo, ricordati di aggiungerlo riferimento a angular-mocks.js nel file di Karma di configurazione, come sotto

config.set({ 

    basePath: '../', 
    port: '8000', 

    files: [ 
     'bower_components/angular/angular.js', 
     'bower_components/angular-mocks/angular-mocks.js', 
     ... 
    ] 
+0

grazie per la risposta, tuttavia, anche dopo aver aggiunto il file 'angular-mock.js', sto ancora ricevendo lo stesso errore. Ho aggiornato la mia domanda con uno screenshot per chiarezza – sameera207

+0

Finalmente ho funzionato con @rebornix, grazie per l'aiuto. Ho dovuto reinstallare 'gelsomino',' karma' e 'angular-mocks', e questo link ha anche aiutato http://ericnish.io/blog/set-up-jasmine-and-karma-for-angularjs – sameera207

11

Nel mio caso si trattava anche di un ordine errato del percorso dei file in karma.conf.js.

Was:

// list of files/patterns to load in the browser 
files: [ 
    'tests/*.test.js', // this should not be as first! 
    'bower_components/angular/angular.min.js', 
    'bower_components/angular-mocks/angular-mocks.js', 
    'app/*.js', 

], 

dovrebbe essere: cosa

// list of files/patterns to load in the browser 
files: [ 
    'bower_components/angular/angular.min.js', 
    'bower_components/angular-mocks/angular-mocks.js', 
    'app/*.js', 
    'tests/*.test.js' // now it's cool 
], 

Forse evidente o forse no? ;-)

+0

Ho avuto il lo stesso problema, questa è la soluzione per me – 123Ex

Problemi correlati