如何根据angularjs

时间:2016-02-11 01:31:11

标签: angularjs unit-testing controller

我的服务取决于$ controller服务。在此服务内部,$ controller服务采用控制器名称和本地实例来实例化此控制器。 当我对这项服务进行单元测试时,我想传递一个虚拟控制器名称,因此我可以正确地测试这项服务。 从读取angular.js源代码,我知道$ controller服务按控制器名称查找已注册的控制器。控制器通过$ controllerProvider的寄存器方法注册。如何在单元测试中访问此方法。我在这里使用Jasmine进行单元测试。 任何建议都表示赞赏。

2 个答案:

答案 0 :(得分:0)

如果您正在尝试测试Angular的$ controller服务,并假设您正在使用ngMocks,则可以正常使用$ controller。在Angular的文档中,有example on how to use it

无论如何,这里是来自文档的样本:

describe('myDirectiveController', function() {
 it('test case', inject(function($controller) {
    // Your code goes here
 });
});

答案 1 :(得分:0)

beforeEach(function () {
    module('myApp', function ($controllerProvider) {
        $controllerProvider.register(dummyController, function () { });
    });
});

我最终得到了这个。当我的服务调用$ controller(dummyController,controllerlocals)时,它能够找到在其本地变量控制器中注册的这个dummyController。 希望这可以帮助人们拥有相同的场景