我有这个代码。
export class MyComponent implements OnInit {
ngOnInit() {
// some code
this.method1(); // It comes up to here.
}
method1() {
console.log('method1'); // It is not showing this.
// Other method calls
}
}
我的规格文件是:
it('should call method1', fakeAsync(() => {
const element = fixture.debugElement.nativeElement;
spyOn(comp, 'method1');
fixture.detectChanges();
// some code
fixture.detectChanges();
fixture.whenStable().then(async() => {
expect(comp.method1).toHaveBeenCalled(); // this works
});
}));
这有什么问题吗?
答案 0 :(得分:2)
当您侦察一种方法时,您要用伪造的方法替换原始方法,这就是为什么不调用method1的原因
如果您想监视某个方法而不替换它,则必须使用callThrough:
spyOn(comp, 'method').and.callThrough()