我一定做错了,但这是我的测试用例:
const { describe, it } = require('mocha'),
should = require('should'),
Promise = require('bluebird') //v3.4.6
describe('Bluebird', () => {
it('Promise is never resolved but does it get resolved?', () => {
new Promise(() => false)
.should.be.fulfilled() // It really shouldn't be
})
})
传递,但不应该失败?
答案 0 :(得分:1)
在mocha测试中使用promises时,测试中return
the promise非常重要。
在你的情况下,那将是:
it('Promise is never resolved but does it get resolved?', () => {
return new Promise(() => false)
.should.be.fulfilled()
})
然而,这可能仍然不完全是您需要的,因为在调用should
时无法确定承诺的履行情况。您的实际测试可能不同,最重要的部分仍然是返回承诺链。
当你这样做时,你就不需要进一步断言承诺的履行/拒绝,因为这是由mocha暗中完成的。
我个人是chai-as-promised的忠实粉丝,它允许您使用之前完全相同的测试,但这一次,它会起作用。