【问题标题】:How to subscribe to error case in angular service unit testing如何订阅角度服务单元测试中的错误案例
【发布时间】:2020-01-15 20:29:59
【问题描述】:

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

我有以下虚假服务,

我的服务,

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-testing jasmine angular6 angular2-services angular-test


    【解决方案1】:

    现在您并没有真正测试该订阅的错误案例。要做到这一点,你需要更像

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

    按照您编写的方式,您可以使用它进行测试

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

    【讨论】:

      猜你喜欢
      • 2021-07-09
      • 2021-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-20
      • 2018-10-03
      • 2020-07-10
      • 2019-08-22
      相关资源
      最近更新 更多