首页 > 解决方案 > 如何订阅角度服务单元测试中的错误案例

问题描述

我正在尝试订阅响应以及错误案例,但是当我看到覆盖范围时,它不会出错。

我有以下虚假服务,

我的服务,

fakeService: {

     appVersion() : {

        return of({'version':'1.2.3.4'})
     } 
}

测试用例1:

 it('Should load version',() => {

    fakeService.appVersion().subscribe((data) {

      expect(data.version).toBe(1.2.3.4)

  });

测试用例 2:[对于错误用例]

  it('Should return error',() => {
   fakeService: {

     appVersion() : {

        return throwError('Error');
     } 
   }
    fakeService.appVersion().subscribe({
     error : err => expect(err).toBe('Error');

  });
 }

在组件中

   myService.appVersion.subscribe((data) {
      if (data) {
       //// Covered
      } else (err) {
       //// Not covered
      }

   });

我正在尝试订阅响应以及错误案例,但是当我看到覆盖范围时,它不会出错。

标签: unit-testingjasmineangular6angular2-servicesangular-test

解决方案


现在,您并没有真正测试该订阅的错误案例。为此,您需要更多类似的东西

myService.appVersion().subscribe((data) {
  if (data) {
    //// Covered
  }
}, (err) => {
    //// Now covered
  }
});

使用您编写它的方式,您可以使用

fakeService: {
  appVersion() : {
    return of(null);
  } 
}

推荐阅读