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);
}));
侦听此服务呼叫时,数据返回为空。类型转换似乎无法解决问题。
答案 0 :(得分:1)
请注意,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));
但是这种测试是没有意义的,因为被测试的方法是模拟的,因此不涉及服务的内部。