2014-03-31 184 views
0

我有一个角应用程序,我正在开发测试。在app.js文件我有这样的事情:角单元测试与Karma

angular.module('app', 
[ 
'app.config', 
'app.factories', 
'app.directives', 
'app.controllers' 
] 
); 

对于每个控制器我想是控制器模块在我本质上定义它们是这样的:

angular.module('app.controllers').controller("controller1" ,[],function(){ 
bleh bleh bleh 
code code code 
}) 

这里的目标是编写一些单位测试与业力,但不幸的是,我已经能够弄清楚如何做的是确保我的主要模块的依赖关系加载。

我需要搞清楚的是使用结构,我有,我怎么(一)创建一个测试,以确保我的控制器实际上是在那里,控制器

我里面(B)测试的东西已经尝试了多种方式,但似乎无法在我的测试框架内实例化控制器。

回答

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) {} ]); 
+0

谢谢你的帮助。是的,它不是第三参数。当我把它放在这里对于混乱感到抱歉的时候,我错误地输入了它。 – Deslyxia