如何在伊斯坦布尔的代码覆盖范围内忽略.catch承诺?

时间:2017-09-18 00:14:50

标签: javascript promise code-coverage istanbul

我正在使用BluebirdJS promise库,我有.catch我无法模拟这就是为什么我无法使用istanbul覆盖我的代码覆盖率。

.then(() => ....)
/* istanbul ignore next */ -> Does not work
.catch((err) => err) /// I want to ignore this

有人知道伊斯坦布尔图书馆是否可以这样做吗?

谢谢!

编辑:这是完整的代码,我的测试无法到达.catch,因为它总是通过,我似乎无法用另一种方式强制mongoose抛出错误

 const { payload } = request

 const group = new LocationGroups(payload)

 group.save()
   .then(reply)
   .catch((error) => reply(boomify(error)))

2 个答案:

答案 0 :(得分:0)

以您的情况

group.save()
   .then(reply)
   .catch(  /* istanbul ignore next */(error) => reply(boomify(error)))

或者,您可以将渔获物包装在另一个块中

 try {
    stuff()
  } catch (err) {
    /* istanbul ignore next */ {
      console.error(err)
      throw err
    }
  }

答案 1 :(得分:0)

try {

} catch (err) /* istanbul ignore next */ {

}