Pregunta

I'm very new to testing but thought it was a good idea to start out some testing with this project. When I run grunt karma:watch I get the error with this configuration files.

I have a config file containing:

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

basePath:  '../..',
// testing framework to use (jasmine/mocha/qunit/...)
frameworks: ['jasmine'],

// list of files / patterns to load in the browser
files: [
'src/js/vendors/angular.js',
'src/js/vendors/angular-mock.js',
'src/js/app/navigation/*js',
'src/**/*.js',
'src/js/vendors/*.js',
'src/test/unit/**/*.spec.js',
'dist/templates/**/*.js'
],

// list of files / patterns to exclude
exclude: [],

// web server port
port: 8080,

// level of logging
// possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
logLevel: config.LOG_INFO,


// enable / disable watching file and executing tests whenever any file changes
autoWatch: false,

// Start these browsers, currently available:
// - Chrome
// - ChromeCanary
// - Firefox
// - Opera
// - Safari (only Mac)
// - PhantomJS
// - IE (only Windows)
browsers: ['Chrome'],


// Continuous Integration mode
// if true, it capture browsers, run tests and exit
singleRun: false
});
};

And my unit test looks like this:

describe('NavCtrl', function(){
  var scope;
  beforeEach(angular.mock.module('integra'));
  beforeEach(angular.mock.inject(function($rootScope,$controller){
     scope = $rootScope.$new();

     $controller('NavCtrl', {$scope: scope});
  }));
  $scope.type =  {
     language: "English",
     i18n: "en_EN"
  };

  $scope.option(type);
  expect($scope.type.i18n).toEqual('en_EN');
})

This is the error:

Chrome 33.0.1750 (Linux) ERROR
Uncaught ReferenceError: $controller is not defined
at ~/Project/theApp/src/test/unit/app/navigation/NavCtrl.spec.js:2

Why isn't the $controller defined? Where should I define it? The controller I wan't to test is located in /src/js/navigation/NavCtrl.js

¿Fue útil?

Solución

Error in path to controller's file in the configuration file.

Used

files: [
   ...,
   'src/js/app/navigation/*js',
   ...
],

Instead of

files: [
   ...,
   'src/js/app/navigation/*.js',
   ...
],
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top