我已经看到很多关于测试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。
答案 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
非常重要