【发布时间】:2016-11-10 12:06:23
【问题描述】:
我正在使用 Karma 和 Jasmine 测试一个 Angular 控制器,但我似乎无法从我的主类加载我的模块。
这是我的主要课程: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 配置文件中的文件,但没有成功。完整的错误是:
模块“admin.module”不可用!你要么拼错了 模块名称或忘记加载它。如果注册一个模块,请确保 您将依赖项指定为第二个参数。
【问题讨论】:
标签: javascript angularjs unit-testing visual-studio-2015 karma-jasmine