javascript - unitarios - ReferenceError: no se puede encontrar la variable: módulo en pruebas angulares
test unitarios ionic (2)
Estoy tratando de escribir una prueba para mi controlador angular, estoy usando jasmine
karma
y angular-mocks
, pero sigue obteniendo el error ReferenceError: Can''t find variable: module
.
He search un poco, pero ya tengo los angular-mocks
en mi glorieta.
¿Qué podría estar perdiendo aquí?
El siguiente es mi código:
#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''));
})
ACTUALIZACIÓN: captura de pantalla para mayor claridad
Además de instalar angular-mocks
través de bower, recuerda agregar referencia a angular-mocks.js
en tu archivo de configuración de karma, como a continuación
config.set({
basePath: ''../'',
port: ''8000'',
files: [
''bower_components/angular/angular.js'',
''bower_components/angular-mocks/angular-mocks.js'',
...
]
En mi caso, también se trataba del orden incorrecto de la ruta de los archivos en karma.conf.js.
Estaba:
// 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'',
],
Debiera ser:
// 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
],
Tal vez lo obvio o tal vez no? ;-)