如何忽略 Jest 测试覆盖率中承诺的 catch 子句?

How to ignore the catch clause of a promise in Jest test coverage?

在我的单元测试中,我有一个案例,我从浏览器 API (IndexedDB) 获得了承诺,并添加了一个 catch 子句来处理任何错误情况。出于明显的原因,我无法触发我的测试失败的承诺。毕竟这是浏览器内部的。

这就是为什么我想忽略代码覆盖的 catch 子句。我该怎么做?

注意:对于 try/catch 块,可以像这样编写伊斯坦布尔忽略提示:

try {
...
} catch(reason) /* istanbul ignore next */ {
...
}

另见 https://github.com/istanbuljs/istanbuljs/issues/559

然而,这不适用于承诺。

添加忽略提示的地方就在catch子句中的闭包之前:

Promise.all([promise1, promise2]).then(() => {
     ...
}).catch(/* istanbul ignore next */(reason) => {
    ...
});