在Angular测试中,当遇到“期望调用某个函数”的错误时,通常是因为测试中没有正确设置相关的间谍函数。下面是一些可能的解决方法:
spyOn
函数来创建间谍函数,并设置它的返回值。例如:const mockService = jasmine.createSpyObj('mockService', ['getServicingContent']);
mockService.getServicingContent.and.returnValue(of({/* 返回值 */}));
beforeEach(async(() => {
TestBed.configureTestingModule({
providers: [MyService] // 确保注入了MyService
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(MyComponent);
component = fixture.componentInstance;
myService = TestBed.inject(MyService); // 将MyService注入到组件中
});
it('should call getServicingContent', () => {
component.ngOnInit();
expect(myService.getServicingContent).toHaveBeenCalled();
});
请根据你的具体情况选择适合的解决方法,并根据错误信息进行调试和修改。