我有一个模拟服务,我需要在特定的测试用例中覆盖模拟服务响应,但它从模拟服务中获取一个值,而不是 spyon 中的新响应。
在这里,我有一个模拟服务并返回一些值。
export class MockService {
getProducts() {
const data = [{ 'productI': 1, 'productName': 'Phone', 'price': 19.96 },
{ 'productID': 3, 'productName': 'Phones', 'price': 19.96 },
{
'productID': 2, 'productName': 'Laptop', 'price': 2000.96
}];
return Observable.of(data);
}
}
在规范之一的测试用例中,我得到了上述响应和测试用例成功。
it('call subscribe get Products and get into success', () => {
spyOn(mockService, 'getProduct').and.returnValue(
observable.of();
)
});
component.ngOnInit();
在另一个测试用例中,我需要测试失败场景。
it("Test 409 failure in service call',()=>{
spyOn(mockService, 'getProduct').and.returnValue(
throwError({status:409})
});
component.ngOnInit();
});
在这种情况下,从预定义的模拟响应中获取值。为什么在 spyOn 中提供 throwError 后不会出错