本质上我想创建一个类似的间谍对象:
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({.....});
答案 0 :(得分:0)
经过大量调试后,我最终做了以下事情:
myService = jasmine.CreateSpyObj("myService", ["myVariable"]);
myService.myVariable.get = function() {}
然后当我想改变我的间谍来调用假函数时:
spyOn(myService.myVariable, "get").and.callFake(function(){...});
- 注意:我相信如果您不希望功能发生变化,可以使用' createSpy'功能。但是,我没有采取这条路线