Angularjs 引用错误:<;模块>;在Karma中运行Jasmine单元测试时未定义

Angularjs 引用错误:<;模块>;在Karma中运行Jasmine单元测试时未定义,angularjs,Angularjs,我得到一个失败的测试,错误为ReferenceError:dmeApp未定义。是否需要将dmeApp注入测试?下面是我在这里找到的教程: app.js: angular.module('dmeApp', ['ngRoute', 'dmeApp.library']) .config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) { $routeProvider .

我得到一个失败的测试,错误为
ReferenceError:dmeApp未定义
。是否需要将
dmeApp
注入测试?下面是我在这里找到的教程:

app.js:

angular.module('dmeApp', ['ngRoute', 'dmeApp.library'])

.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
  $routeProvider
    .when('/library', {
      templateUrl: 'library.html',
      controller: 'LibraryController',
    })
    .when('/styleguide', {
      templateUrl: 'styleguide.html',
    })
    .otherwise({
      templateUrl: 'front.html',
    });

  $locationProvider.html5Mode(true);
}])

.controller('NavController', ['$scope', '$location', function($scope, $location) {
  $scope.linkIsActive = function(viewLocation) {
    return viewLocation === $location.path();
  };
}]);
app.spec.js:

describe('Header Navigation', function() {
  beforeEach(angular.module('dmeApp'));

  it('should have a NavController defined', function() {
    expect(dmeApp.NavController).toBeDefined();
  });
});
和我的Karma配置(在Gruntfile.js中):

/**
*我们的业力结构。
*/
业力:{
选项:{
档案:[
'',
'',//此处添加了角度
'',//此处添加了角度模拟
'src/***.js',//所有应用程序文件和规范都添加到此处
],
浏览器:['Chrome'],
框架:['jasmine'],
},
开发人员:{
记者:"点",,
背景:对,,
},
连续的:{
singleRun:是的,
},
},

在beforeach中的spec.js中尝试以下操作:

beforeEach(inject(function($injector) {

var dmeAppNavController = $injector.get('dmeApp.NavController');

...
}
然后,您可以在测试用例中使用dmeAppNavController


在测试用例中使用$injector几乎总是一个好主意

谢谢。这帮了大忙!
beforeEach(inject(function($injector) {

var dmeAppNavController = $injector.get('dmeApp.NavController');

...
}