测试承诺链在.catch中结束(使用Mocha / Chai承诺)

时间:2016-03-05 05:38:03

标签: javascript ecmascript-6 mocha es6-promise chai-as-promised

我已经看到很多关于测试Promise拒绝的信息,但是想知道如果有人知道如何编写一个如果承诺链不以'.catch'结尾会失败的测试?我正在努力防止吞噬错误。

例如,这将通过测试:

doSomething()                            // returns a Promise
.then(doSomethingElse)                   // returns a Promise
.then(handleResult)
.catch((err) => { console.log(err); });  // logs errors from any rejections

这会失败:

doSomething()                            // returns a Promise
.then(doSomethingElse)                   // returns a Promise
.then(handleResult);                     // no catch = swallowed errors

我正在使用mocha和chai-as-promised。 我没有使用任何承诺库,只是本机es2015。

1 个答案:

答案 0 :(得分:0)

你需要退回承诺并测试它是否被chai-as-promised

拒绝

应该是风格:

return doSomething()                            
.then(doSomethingElse)                   
.then(handleResult).should.be.rejectedWith(Error);  

return doSomething()                            
.then(doSomethingElse)                   
.then(handleResult).should.be.rejected; 

return非常重要