spyOn 响应返回为空

spyOn response is coming back empty

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.

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

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

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

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