我有一个角度应用程序,我正在开发测试。在app.js文件中我有这样的东西:
angular.module('app',
[
'app.config',
'app.factories',
'app.directives',
'app.controllers'
]
);
对于我想要进入该控制器模块的每个控制器,我基本上都是这样定义的:
angular.module('app.controllers').controller("controller1" ,[],function(){
bleh bleh bleh
code code code
})
这里的目标是用业力编写一些单元测试但不幸的是,我能够弄清楚如何做的最多是确保我的主模块的依赖性加载。
我需要弄清楚的是使用我所拥有的结构,我如何(a)创建测试以确保我的控制器实际存在,以及(b)测试控制器内部的东西
我尝试了多种方法但似乎无法在我的测试框架中实例化控制器。
答案 0 :(得分:0)
您可以像这样测试控制器是否存在:
describe("SomeControllerTest", function () {
var scope, ctrl;
beforeEach(module('myApp'));
beforeEach(inject(function($rootScope, $controller) {
scope = $rootScope.$new();
ctrl = $controller('SomeController', {
$scope: scope
});
}));
it("should be defined", function () {
expect(ctrl).toBeDefined();
});
});
小心你的控制器语法。第二个参数是一个以函数结尾的字符串数组,该函数不是第三个参数。
app.controller('MyController', [ '$log', function MyController($log) {} ]);