簡體   English   中英

Jasmine,Angular和Resharper:在單元測試中無法注入控制器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM