【发布时间】:2020-05-07 12:57:42
【问题描述】:
//这是我的组件,这里调用的isAuth服务方法是Task方法
export class DefaultComponent implements OnInit {
constructor(public defaultService: DefaultService) { }
ngOnInit(): void { }
isTask(id) {
if (id) {
this.defaultService.isAuth(id);
}
}
}
//这是我的服务代码
从“@angular/core”导入 { Injectable };
@Injectable({providedIn: 'root'})
export class DefaultService {
constructor() { }
isAuth(id: string) {
return true;
}
}
//这是我的单元测试,我想确保服务方法是否被调用
it('should call isAuth api when isTask method is called', () => {
component.isTask(123);
const defaultService = TestBed.inject(DefaultService);
spyOn(defaultService, 'isAuth');
expect(defaultService.isAuth).toHaveBeenCalledTimes(1);
});
//也可以试试
it('should call isAuth api when isTask method is called', () => {
const defaultService = TestBed.inject(DefaultService);
spyOn(component, 'isTask').and.callThrough();
spyOn(defaultService, 'isAuth');
expect(defaultService.isAuth).toHaveBeenCalledTimes(1);
});
【问题讨论】:
标签: angular typescript angular-test