0
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。

4

1 回答 1

1

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

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

spyOn(service, 'getQQFormData').and.returnValue(of(resp));
service.getQQFormData(...).subscribe(v => expect(v).toBe(resp));

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

于 2019-11-28T09:16:38.357 回答