使用自定义错误处理程序可观察到的角度单元测试错误

时间:2020-09-09 13:44:02

标签: angular typescript rxjs jestjs

说我在组件内部有一些方法,我在其中订阅服务以获取一些数据,就像这样:

this.service
  .fetchData()
  .pipe(
    tap(
      // success handling
      () => {},
      // error handling
      () => {}
    ),
    takeUntil(this.unsubscribe),
  )
  .subscribe();

如您所见,我没有“真正的”错误处理,更多的是“轻微”的错误处理,即catchError内没有pipesubscribe内没有错误处理。 其背后的原因是我使用了CustomErrorHandlerhttps://angular.io/api/core/ErrorHandler)。如果存在某种“真实的”错误处理,则错误不会传递到CustomErrorHandler,这是不希望的,因为CustomErrorHandler及其逻辑对于应用程序至关重要。 / p>

现在,我需要使用笑话编写一些单元测试,这就是发生问题的地方:如果我想通过让this.service.fetchData()抛出一些错误来测试错误处理行为,则该错误不会在测试内部处理并且仍然漂浮在周围,导致后续测试失败。

我尝试过:

expect(component.method()).toThrow()
expect(component.method()).toThrowError()

没有成功。

然后,我尝试提供CustomErrorHandler,特别是对于同样无效的测试。

如何编写单元测试以测试此用例中的错误处理?

0 个答案:

没有答案