如何覆盖Jasmine Spyon中的响应

时间:2018-05-27 15:53:31

标签: karma-jasmine angular4-httpclient jasmine2.0 angular-test angular-testing

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

在这种情况下,从预定义的模拟respone获取一个值。为什么在spyOn中提供throwError之后它没有出错?

0 个答案:

没有答案