[英]Jasmine, Angular, and Resharper: Trouble injecting a controller in a unit test
我在將茉莉花色規格文件中注入角度控制器時遇到問題。 錯誤始於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) { ... }
最終,我能夠使用測試規范和角度文件來獲得此版本的簡化版本。 問題似乎是在注入這個特定的模塊/控制器,但我還沒有找到問題。 感謝您提供的任何幫助。 謝謝!
事實證明,我沒有在規范文件的頂部包含所需的文件。 我嘗試測試的模塊具有依賴關系,並且測試運行程序找不到它們,因為我沒有為具有依賴關系的文件提供正確的<reference path=...
當我添加這些時,它起作用了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.