在Angular单元测试中,要检查一个函数是否已被调用,可以使用spyOn
方法和toHaveBeenCalled
匹配器来实现。
首先,使用spyOn
方法来创建一个函数的spy对象,用于监视函数的调用情况。示例代码如下:
import { MyService } from './my.service';
describe('MyService', () => {
let service: MyService;
beforeEach(() => {
service = new MyService();
});
it('should check if a function is called', () => {
spyOn(service, 'myFunction');
service.myFunction();
expect(service.myFunction).toHaveBeenCalled();
});
});
在上述代码中,我们创建了一个MyService
的实例,并使用spyOn
方法来监视myFunction
函数的调用情况。然后,我们调用了myFunction
函数,并使用toHaveBeenCalled
匹配器来断言该函数已被调用。
如果myFunction
函数带有参数,我们可以使用toHaveBeenCalledWith
匹配器来进一步断言参数的值。示例代码如下:
import { MyService } from './my.service';
describe('MyService', () => {
let service: MyService;
beforeEach(() => {
service = new MyService();
});
it('should check if a function is called with correct arguments', () => {
spyOn(service, 'myFunction');
service.myFunction(123, 'abc');
expect(service.myFunction).toHaveBeenCalledWith(123, 'abc');
});
});
上述代码中,我们使用toHaveBeenCalledWith
匹配器来断言myFunction
函数被调用时传入了正确的参数值。
关于Angular单元测试的更多信息,可以参考腾讯云开发者文档中的Angular单元测试教程。
领取专属 10元无门槛券
手把手带您无忧上云