如何根据angularjs中的$controller服务对服务进行单元测试
我的服务依赖于$controller服务。在该服务内部,$controller服务采用控制器名称和局部变量来实例化该控制器。 当我对该服务进行单元测试时,我希望传递一个虚拟控制器名称,以便能够正确地测试该服务。 通过阅读angular.js源代码,我知道$controller服务按控制器名称查找已注册的控制器。控制器通过$controllerProvider的注册方法注册。如何在单元测试中访问此方法。我在这里使用Jasmine进行单元测试。如何根据angularjs中的$controller服务对服务进行单元测试,angularjs,unit-testing,controller,Angularjs,Unit Testing,Controller,我的服务依赖于$controller服务。在该服务内部,$controller服务采用控制器名称和局部变量来实例化该控制器。 当我对该服务进行单元测试时,我希望传递一个虚拟控制器名称,以便能够正确地测试该服务。 通过阅读angular.js源代码,我知道$controller服务按控制器名称查找已注册的控制器。控制器通过$controllerProvider的注册方法注册。如何在单元测试中访问此方法。我在这里使用Jasmine进行单元测试。 非常感谢您的建议。如果您正在尝试测试Angular的$
非常感谢您的建议。如果您正在尝试测试Angular的$controller服务,并且假设您使用的是NGMock,您可以正常使用$controller。在Angular的文档中,有一个 无论如何,以下是文档中的示例:
describe('myDirectiveController', function() {
it('test case', inject(function($controller) {
// Your code goes here
});
});
我最终得到了这个。当我的服务调用$controller(dummyController,controllerlocals)时,它能够找到在其局部变量控制器中注册的这个dummyController。
希望这能帮助人们有相同的场景朋友,请添加您尝试过的角度脚本和单元测试脚本。只需将难以回答的问题迫在眉睫即可。
beforeEach(function () {
module('myApp', function ($controllerProvider) {
$controllerProvider.register(dummyController, function () { });
});
});