我无法将角度控制器注入我的jasmine规范文件中。错误以http://errors.angularjs.org/1.3.3/$injector/modulerr...
我正在使用Visual Studio 2013和Resharper 8.2.3。以下是相关摘录:
茉莉
///<reference path="~/Scripts/jasmine/jasmine.js"/>
///<reference path="~/Scripts/jasmine/jasmine-html.js"/>
///<reference path="~/Scripts/jasmine/boot.js"/>
///<reference path="~/Scripts/angular-core/angular.min.js"/>
/// <reference path="~/Scripts/angular-core/angular-mocks.js" />
/// <reference path="~/Scripts/angular-controllers/FormsAdminSecurityAccountAdmin.js" />
describe("Sec Acct Admin Controller", function () {
var $controllerConstructor, scope, ctrl;
beforeEach(module('accounts'));
beforeEach(inject(function($rootScope, $controller) {
scope = $rootScope.$new();
$controllerConstructor = $controller;
ctrl = $controllerConstructor('accountsCtrl', { $scope: scope });
}));
it("the controller is present", function () {
expect(ctrl).toBeDefined();
});
});
角
angular.module('accounts', ['cocUtilities', 'angucomplete-alt', 'ui.date', 'ui.grid', 'ui.grid.pinning', 'ui.grid.pagination', 'ui.grid.resizeColumns', 'ui.grid.moveColumns']);
angular.module('accounts').config(['$locationProvider', function ($locationProvider) { // Allows $location to parse the arguments to a URL
$locationProvider.html5Mode({enabled: true, requireBase: false});
}]);
angular.module('accounts').controller('accountsCtrl', ['$scope', '$window', '$location', 'dataFactory', 'cccsLookupForAccounts', 'uiGridConstants', function ($scope, $window, $location, dataFactory, cccsLookupForAccounts, uiGridConstants) { ... }
最后,我能够使用测试规范和角度文件来获得这个的简化版本。问题似乎是注入这个特定的模块/控制器,但我还没有找到问题。如果您能提供任何帮助,我将不胜感激。谢谢!
答案 0 :(得分:0)
事实证明,我没有在spec文件的顶部包含所需的文件。我尝试测试的模块有依赖项,测试运行器找不到它们,因为我没有为具有依赖项的文件包含正确的<reference path=...
。当我添加它们时,它起作用了。