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。
发布于 2019-11-28 09:16:38
请注意,spyOn将spy安装到现有对象的方法上,但它不会调用该方法。因此,在方法AcaQqService.getQQFormData上安装间谍和调用expect之间,需要调用AcaQqService.getQQFormData。
此外,您也不检查AcaQqService.getQQFormData (一个Observable)的结果,而是检查测试中定义的resp对象。为了使这一工作,它可以重写如下。
spyOn(service, 'getQQFormData').and.returnValue(of(resp));
service.getQQFormData(...).subscribe(v => expect(v).toBe(resp));然而,这样的测试是没有意义的,因为测试方法是模拟的,因此不涉及服务的内部。
https://stackoverflow.com/questions/59072984
复制相似问题