Javascript 引用错误:Can';找不到变量:$controller

Javascript 引用错误:Can';找不到变量:$controller,javascript,angularjs,testing,visual-studio-2012,jasmine,Javascript,Angularjs,Testing,Visual Studio 2012,Jasmine,嗯, 所以我第一次尝试在Angular JS项目上使用Jasmine开始单元测试,我遇到了一些障碍 我在这篇博客文章中很好地引用了关于如何 我的测试在类库项目中,如下所示:- /// <reference path="../../../../src/tasks.web/scripts/angular-1.2.10.js" /> /// <reference path="../../../../src/tasks.web/scripts/angular-route-1.2.10.

嗯, 所以我第一次尝试在Angular JS项目上使用Jasmine开始单元测试,我遇到了一些障碍

我在这篇博客文章中很好地引用了关于如何

我的测试在类库项目中,如下所示:-

/// <reference path="../../../../src/tasks.web/scripts/angular-1.2.10.js" />
/// <reference path="../../../../src/tasks.web/scripts/angular-route-1.2.10.js" />
/// <reference path="../../../../src/tasks.web/scripts/app.js" />
/// <reference path="../../../../src/tasks.web/scripts/controllers.js" />
/// <reference path="../lib/angular/angular-mocks.js" />

describe("TaskListController", function () {
    beforeEach(module('taskApp.controllers'));

    it("has tasks defined", function() {
        var $scope = {};
        $controller("TaskListController", { $scope: $scope });
        expect($scope.tasks).toBeDefined();
    });
});
controller.js

var appControllers = angular.module("appControllers", []);

appControllers.controller("TaskListController", function ($scope) {
    $scope.tasks = {};
});
所有引用的文件都在那里(没有404)。Visual Studio发现测试正常并运行它,但是我得到
ReferenceError:找不到变量:$controller


感谢您的帮助,因为我知道我真的很快就要让它工作了,我知道我缺少的只是一些简单的东西。

您需要注入
$controller
。一种方法是:

it("has tasks defined", inject(function($controller) {
   var $scope = {};
   $controller("TaskListController", { $scope: $scope });
   expect($scope.tasks).toBeDefined();
}));
此外,您还需要在每次

因此,您需要执行以下操作:-

beforeEach(module('appControllers'));

在测试中,控制器模块的名称具有不同的名称。'在每个(模块('taskApp.controllers')之前;'应改为“beforeach(模块('AppController'));”?谢谢,这还不够,但结合@Michael的建议解决了这个问题。
beforeEach(module('appControllers'));