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.
请注意 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));
但是这样的测试没有意义,因为被测试的方法是模拟的,因此不涉及服务的内部。
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.
请注意 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));
但是这样的测试没有意义,因为被测试的方法是模拟的,因此不涉及服务的内部。