[英]Jasmine Test Error : Expected Spy XYZ to have been called
我在 component.ts 文件中有一个方法,它正在调用服务方法。 代码结构如下 -
getDetails(){
if(!alreadyCached){
callLogFunction();
}
this.service.getData()
.then(res => {
//rest of the logic here
})
.catch(err=>{ //catch logic here })
}
我的测试块看起来像这样-
it('should call service.getData', ()=>{
spyOn(service,'getData').and.returnValue(Promise.resolve([]);
component.getDetails();
fixture.whenStable().then(()=>{
expect(service.getData).toHaveBeenCalled();
}
}
为什么我会收到预期 spy getData 已被调用的错误如果您能帮助我进行测试并捕获块(如何为它们编写测试),那就太好了
谢谢: :)
如果您尝试测试是否调用了service.getData
,则根据您的测试名称,您应该这样编写测试:
it('should call service.getData', ()=>{
const getDataSpy = spyOn(service,'getData');
component.getDetails();
expect(getDataSpy).toHaveBeenCalled();
}
这样你就只测试了你想测试的,服务方法被调用,没有其他干扰
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.