我编写了一个带有一些参数的函数,并且在函数内部使用了一个类,该类具有一个来自第三方库的函数,该函数返回一个Promise,然后在自己的函数中返回Promise的结果。就像:
return client.track(data) // client.track is from a 3rd party lib that should return a promise
现在,我想在我的mocha + chai测试文件中测试promise的返回。我用输入导入此函数,我应该得到结果。像这样:
const result = await myfunc(x,y) // Should return the result of a promise
现在我想测试在Mocha + Chai中是否真的兑现了诺言,例如使用
chai.expect(...)
我该怎么做?
答案 0 :(得分:1)
看看npm软件包chai-as-promised
(https://www.npmjs.com/package/chai-as-promised)。它是对chai库的扩展,该库提供对Promise的支持。
您可以通过以下方式进行设置
const chai = require("chai")
const chaiAsPromised = require("chai-as-promised")
chai.use(chaiAsPromised)
chai.should()
promiseFunction(args).should.be.rejectedWith(SomeError)
promiseFunction().should.eventually.be.a('array')
看看文档,以更好地了解此插件的功能:)