需要帮助设置Karma(获取错误)

时间:2016-12-13 12:43:56

标签: javascript angularjs karma-jasmine

我是Karma的新手,非常感谢任何帮助,了解以下错误的原因:

Uncaught Error: [$injector:nomod] Module 'myApp.controllers' is not available!
You either misspelled the module name or forgot to load it. If registering a
module ensure that you specify the dependencies as the second argument.

app.js

angular.module('myApp', [
    'ngRoute',
    'myApp.controllers',
    'myApp.filters',
    'myApp.services',
    'myApp.directives'
]).
config(function ($routeProvider, $locationProvider) {

controllers.js

angular.module('myApp.controllers', []);

StoreCtrl.js

angular.module('myApp.controllers').
  controller('StoreCtrl', ['$scope', '$http', function ($scope, $http) {

StoreCtrl.spec.js

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

    var $controller;

    beforeEach(inject(function(_$controller_){
        // The injector unwraps the underscores (_) from around the
        // parameter names when matching
        $controller = _$controller_;
    }));

    describe('$scope.filterByPrice', function() {
        it('test spec', function() {

        });
    });
});

karma.conf.js

files: [
    'public/js/scripts/angular/angular.js',
    'public/js/scripts/angular-mocks/angular-mocks.js',
    'public/js/scripts/angular-route/angular-route.min.js',
    'public/js/app.js',
    'public/js/controllers/*.js',
    'tests/**/*.spec.js'
],

文件结构

enter image description here

1 个答案:

答案 0 :(得分:0)

Karma没有在StoreCtrl.js之前选择controllers.js文件

我必须更改以下代码:

'public/js/controllers/*.js',

'public/js/controllers/controllers.js',
'public/js/controllers/StoreCtrl.js',

它现在有效:)