Angular test failing to instantiate module with Jasmine and Karma

593 views Asked by At

I have setted up a test environment with Angular 1.6.6, ng-mock 1.6.6, Jasmine and Karma. But even with the easiest test I'm getting a [$injector:modulerr] when trying to inject the deloreanApp module

Failed to instantiate module deloreanApp due to: Error: [$injector:nomod]

Theoretically there aren't tipo errors and Angular and ng-mock versions matches.

My files are:

app.js

(function () {
    "use strict";

    // initialize Angular
    angular.module('deloreanApp', ['deloreanApp.controllers', 'deloreanApp.services']);

    angular.module('deloreanApp.controllers', []);
    angular.module('deloreanApp.services', []);
})();

controllers.js

(function () {
    "use strict";


function deloreanController($scope){
    $scope.sum = function(a,b){
        return a + b;
    }
}

  angular.module('deloreanApp.controllers', []).controller('DeloreanController', ['$scope', deloreanController] );
})();

DeloreanController.test.js

describe('calculator', function () {

    beforeEach(module('deloreanApp'));

    var $controller;

    beforeEach(inject(function (_$controller_) {
        $controller = _$controller_;
    }));

    describe('sum', function () {
        it('1 + 2 should equal 3', function () {
            var result = 3;
            expect(result).toBe(3);
        });
    });

});

And part of my karma.conf.js file:

// list of files / patterns to load in the browser
files: [
  'lib/angular.min.js',
  'lib/angular-mocks.js',
  'js/app.js',
  'js/controllers.js',
  'tests/DeloreanController.test.js'
],
1

There are 1 answers

0
Sajeetharan On

Try this,

(function () {
    "use strict";
    angular.module('deloreanApp.controllers', []);
    angular.module('deloreanApp.services', []);
    // initialize Angular
    angular.module('deloreanApp', ['deloreanApp.controllers', 'deloreanApp.services']);
})();