茉莉花中角度服务的实例变量的模拟方法

时间:2016-08-29 14:04:40

标签: angularjs unit-testing jasmine karma-jasmine

本质上我想创建一个类似的间谍对象:

myService.myVariable.get()

然而,我似乎无法正确嘲笑它。如果我试试

 myServiceMock = jasmine.createSpyObj("myService", ["myVariable"]);

然后我得到了.get()未定义。同样

 myServiceMock = jasmine.createSpyObj("myService", ["myVariable.get"]);

然后我得到myVariable在测试中未定义。如果它是相关的,注入我们的模拟服务的代码:

vm = $componentController('home', {$uibModal: modal, myService: myService});

我没有全神贯注地测试这项服务,我只想拦截那个电话。在被测试的组件中,调用它的行是

myService.myService.get({.....});

1 个答案:

答案 0 :(得分:0)

经过大量调试后,我最终做了以下事情:

myService = jasmine.CreateSpyObj("myService", ["myVariable"]);
myService.myVariable.get = function() {}

然后当我想改变我的间谍来调用假函数时:

spyOn(myService.myVariable, "get").and.callFake(function(){...});

- 注意:我相信如果您不希望功能发生变化,可以使用' createSpy'功能。但是,我没有采取这条路线

相关问题