与摩卡咖啡和柴一起测试,看看诺言是否得以解决

时间:2019-06-10 21:04:03

标签: javascript unit-testing promise mocha chai

我编写了一个带有一些参数的函数,并且在函数内部使用了一个类,该类具有一个来自第三方库的函数,该函数返回一个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(...)

我该怎么做?

1 个答案:

答案 0 :(得分:1)

看看npm软件包chai-as-promisedhttps://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')

看看文档,以更好地了解此插件的功能:)