如何在Jest JS中测试未处理的拒绝和已处理的拒绝

时间:2018-09-06 20:29:33

标签: javascript jestjs

我有一堂课,想赶上拒绝错误。

export class Logger {

  constructor () {
  this.registerHooks()
 }
 registerHooks() {
    window.addEventListener("unhandledrejection", (e) => {
      e.preventDefault();
      var reason = e.detail.reason;
      (reason)
console.log(
    });

    window.addEventListener("rejectionhandled", (e) => {
      e.preventDefault();
      var promise = e.detail.promise;
      this.warn(e)
    });
  }

我如何在Jest的帮助下测试这2个案例?。

1 个答案:

答案 0 :(得分:0)

我将仅针对一种情况描述一个示例。第二种情况需要类似的方法。

  1. 提取事件处理程序函数以分离方法。例如onUnhandledRejection
  2. 模拟Logger.prototype.onUnhandledRejection
  3. 创建Logger实例。
  4. 执行window.dispatchEvent('unhandledrejection')
  5. 检查是否调用了instance.onUnhandledRejection

上述步骤可让您检查是否设置了正确的事件处理程序。接下来,您可以像其他任何类方法一样测试onUnhandledRejection