如何测试承诺已定义了catch方法?

我有一个返回承诺的方法。

doStuf() { 
  return somePromise
    .then(...)
    .catch(e => {...}) 
}

我想编写一个测试来确保doStuff方法返回的promise具有catch方法。

该怎么做?

fluid120 回答:如何测试承诺已定义了catch方法?

这不是测试有用的东西。请考虑将doStuf稍后重构为更多层的结构,其中可能存在多个then-catch链,或者实现将以其他方式更改。

您实际上并不想测试实现,因为您可以简单地查看它以查看,看诺言是否具有catch。不,您要测试doStuf行为。您想断言doStuf返回一个承诺,并且该承诺返回给定某些输入的期望值。例如:

doStuf('foo').then(r => /* assert r equals expected outcome */)
doStuf('bar').catch(r => /* assert r equals expected error */)
本文链接:https://www.f2er.com/3160298.html

大家都在问