在使用该方法之前,需要先确保已经引入了Jasmine的spy功能。然后可以使用Jasmine的spyOn()方法来创建一个假的函数,以保证toHaveBeenCalled()方法正常工作。
以下是一个示例代码:
import { TestBed } from '@angular/core/testing';
describe('MyComponent', () => {
let myComponent;
let myService;
beforeEach(() => {
TestBed.configureTestingModule({
providers: [
MyService
]
});
myService = TestBed.get(MyService);
spyOn(myService, 'myMethod');
myComponent = new MyComponent(myService);
});
it('should call myMethod when button is clicked', () => {
myComponent.onClick();
expect(myService.myMethod).toHaveBeenCalled();
});
});
在这个示例中,我们首先引入了TestBed,以便进行单元测试。然后我们创建了一个假的myService,使用Jasmine的spyOn()方法来监视myMethod方法。最后,我们创建了一个MyComponent实例,并在测试用例中调用onClick()方法。使用Jasmine的toHaveBeenCalled()方法来断言myService的myMethod方法已经被调用。
通过这种方式,我们就可以保证Angular单元测试中的toHaveBeenCalled()方法正常工作了。