我正在使用 Karma 和 Jasmine 测试 Angular Controller ,但我似乎无法从主类加载模块。
这是我的主类:admin.controller.js
angular.module('admin.module').controller('admin.controller', ['$scope', function ($scope) {
$scope.SaveChanges = function()
{
return true;
}
}]);
这是我的测试类:admin.controller.tests.js
describe('admin.controller tests', function () {
beforeEach(module('admin.module'));
var $controller = {};
beforeEach(inject(function (_$controller_) {
$controller = _$controller_;
}));
describe('$scope.SaveChanges', function () {
it('Should return true', function () {
var $scope = {};
var controller = $controller('admin.controller', { $scope: $scope });
expect($scope.SaveChanges()).toBe(true);
});
});
});
我的 karma.conf.js
文件指向我的项目中的以下文件:
// list of files / patterns to load in the browser
files: [
'../TriAngular/scripts/angular.js',
'../TriAngular/scripts/angular-mocks.js',
'../TriAngular/app/admin/*.js',
'app/admin/*.js'
],
admin.controller.js
文件位于../TriAngular/app/admin
和我的admin.controller.test.js
中位于“app/admin”内。
我尝试直接引用我的 karma 配置文件中的文件,但没有成功。完整的错误是:
Module 'admin.module' 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.
最佳答案
事实证明,该问题并不是从显示的异常中明显看出的。我缺少一个需要包含的 angular-route.js 文件,因为它看起来像我的管理模块依赖于它。
我的 karma.conf.js
文件中的包含列表:
// list of files / patterns to load in the browser
files: [
'../TriAngular/scripts/angular.js',
'../TriAngular/scripts/angular-mocks.js',
'../TriAngular/scripts/angular-route.js',
'../TriAngular/app/admin/*.js',
'app/admin/*.js'
],
关于javascript - AngularJS单元测试: Module 'admin.module' is not available,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40527223/