正如已经指出的那样在这里,摩卡的新版本已经实现了Promise-aware。但是,由于OP特别询问了Chai的情况,所以只有指出chai-as-promised公司
为测试承诺提供干净语法的包:
使用chai-as-promised
以下是如何使用chai-as-promised来测试这两者决定
和拒绝
承诺案例:
var chai=要求('chai');var期望=chai.expect;var chaiAsPromised=要求(“承诺的chai”);chai.use(chaiAsPromised);...它('按承诺解决',function(){return expect(Promise.resolve('woof')).to.finally.equal('wooff');});it('按承诺弹出',function(){return expect(Promise.reject('caw')).to.be.rejectedWith('cau');});
没有chai-as-promised
为了真正清楚测试的内容,下面是没有chai-as-promised的相同示例:
它('按承诺解决',function(){return承诺解决(“woof”).then(函数(m){expect(m).to.equal('woof');}).catch(函数(m){throw new Error('was not should to fail');});});it('按承诺弹出',function(){return Promise.reject(“呼叫”).then(函数(m){throw new Error('was not should to successed');}).catch(函数(m){expect(m).to.equal('caw');});});