繁体   English   中英

Jasmine 测试错误:预期 Spy XYZ 已被调用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM