Angularjs 本例中控制器的使用

Angularjs 本例中控制器的使用,angularjs,Angularjs,我正在阅读Angular JS,我正在看这个示例: // testing controller describe('MyController', function() { var $httpBackend, $rootScope, createController; beforeEach(inject(function($injector) { // Set up the mock http service responses

我正在阅读Angular JS,我正在看这个示例:

// testing controller
    describe('MyController', function() {
       var $httpBackend, $rootScope, createController;

       beforeEach(inject(function($injector) {
         // Set up the mock http service responses
         $httpBackend = $injector.get('$httpBackend');
         // backend definition common for all tests
         $httpBackend.when('GET', '/auth.py').respond({userId: 'userX'}, {'A-Token': 'xxx'});

         // Get hold of a scope (i.e. the root scope)
         $rootScope = $injector.get('$rootScope');
         // The $controller service is used to create instances of controllers
         var $controller = $injector.get('$controller');

         createController = function() {
           return $controller('MyController', {'$scope' : $rootScope });
         };
       }));
我的问题是
createController
的作用是什么,我真的不明白它为什么在那里,或者最后一行在返回
$controller
的地方做了什么,或者它与
$scope
有什么关系

这是第二个灰色部分,在标题下方包含代码:使用mock$httpBackend进行单元测试


非常感谢您的帮助。

$controller
从第一个灰色部分返回
MyController
的实例。为了给控制器提供一些上下文,它将
$rootScope
传递到控制器的实例化中。因此,当您执行控制器时(如后面的it()块所示),控制器将运行并启动
$http.get('/auth.py')
请求