1

我有一个模拟服务,我需要在特定的测试用例中覆盖模拟服务响应,但它从模拟服务中获取一个值,而不是 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 后不会出错

4

0 回答 0