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



我有一个类,我想在其中捕获拒绝错误。

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. 将事件处理程序函数提取到单独的方法。例如onUnhandledRejection.
  2. 模拟Logger.prototype.onUnhandledRejection.
  3. 创建Logger实例。
  4. 执行window.dispatchEvent('unhandledrejection')
  5. 检查是否调用了instance.onUnhandledRejection

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

最新更新