我有服务:
getNode(name: string): Observable<nodes> {
return this.get(`${this.rootUrl}/names/${name}`);
}
组件调用
ngOnChanges() {
if (this.selectedStructure) {
this.nodeSvs.getNode(this.selectedStructure)
.subscribe(tree => {
...
});
}
}
我的考试
const mockNodeService = {
getNode: jest.fn()
};
mockNodeService.getNode.mockReturnValue(of(bustree));
configureTestSuite(() => {
TestBed.configureTestingModule({
...,
providers: [{ provide: NodeService, useValue: mockNodeService }]
}).compileComponents();
});
it('should return bus tree', () => {
component.selectedStructure = 'abc';
component.ngOnChanges();
expect(mockNodeService.getNode).toHaveBeenCalledWith(component.selectedStructure);
});
测试时,我得到TypeError: this.nodeSvs.getNodeBusTree(...).subscribe is not a function
,但组件运行正常。