' myApp.controller不是一个功能' Jasmine

时间:2015-05-29 23:21:40

标签: angularjs unit-testing jasmine

我在js控制台日志中尝试将控制器分配给' myCtrl'时收到以下错误:茉莉花测试中的变量:' myApp.controller不是函数'

在控制器本身中,控制器定义如下,这就是触发我提到的错误的原因:

myApp.controller('myCtrl', ...

这就是我在我的spec文件中尝试访问控制器的方式:

beforeEach(function() {
    module('myApp');
});

it('tests the controller', inject(function($controller) {
    var myCtrl = $controller('myCtrl');
}));

知道为什么它还在抛出这个错误吗?似乎缺少依赖但不确定在哪里..

2 个答案:

答案 0 :(得分:0)

如果您想测试控制器,以下是编写测试用例的一种方法

describe('YourControllerName', function () {
    var $rootScope, scope, $controller   ;

   beforeEach(angular.mock.module('YourModuleName'));

   beforeEach(inject(function ($rootScope, $controller ) {
        scope = $rootScope.$new();
        $controller('YourControllerName', {
        $scope: scope
       }); 
    }));

    it('Should do this', function () {
        //assertions
    });
});

答案 1 :(得分:0)

谢谢 - 事实证明,我需要在SecRunner.html中的myController.js之前列出myApp.js这么简单。我很确定我之前尝试过这个......但是你去了。