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