首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spyOn响应是空的

spyOn响应是空的
EN

Stack Overflow用户
提问于 2019-11-27 14:58:38
回答 1查看 107关注 0票数 0
代码语言:javascript
复制
it('should inject acaQQService and run getQQFormData', inject(
    [AcaQqService], (service: AcaQqService) => {
      const resp: QuickQuoteEntity  = <QuickQuoteEntity><unknown>[];
      spyOn(service, 'getQQFormData').and.returnValue(of(resp));
      expect(resp).not.toBeNull();
      console.log(resp);
    }));

当监视这个服务的时候,数据就会空回来。类型转换似乎不适用于resp。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-28 09:16:38

请注意,spyOnspy安装到现有对象的方法上,但它不会调用该方法。因此,在方法AcaQqService.getQQFormData上安装间谍和调用expect之间,需要调用AcaQqService.getQQFormData

此外,您也不检查AcaQqService.getQQFormData (一个Observable)的结果,而是检查测试中定义的resp对象。为了使这一工作,它可以重写如下。

代码语言:javascript
复制
spyOn(service, 'getQQFormData').and.returnValue(of(resp));
service.getQQFormData(...).subscribe(v => expect(v).toBe(resp));

然而,这样的测试是没有意义的,因为测试方法是模拟的,因此不涉及服务的内部。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59072984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档