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');
...
}