摩卡柴解决多个承诺
Posted
技术标签:
【中文标题】摩卡柴解决多个承诺【英文标题】:Mocha chai resolve multiple promises 【发布时间】:2019-11-15 14:25:24 【问题描述】:我正在尝试对这个 Promise 进行测试,但我收到了这个错误:
“错误:超过 2000 毫秒的超时。对于异步测试和钩子,请确保调用了“done()”;如果返回 Promise,请确保它已解决。(C:\Users\Ranieri\Documents\Projetos\Node Js\ testestest\test\libs\registerUser.test.js)"
我已经增加了超时时间,但仍然没有解决问题。
我在***上搜索了这里的异步测试,没有发现任何类似的东西或任何人
我的测试代码https://github.com/ran-j/teste
已经试过了:
expect(Promise.resolve( userPromesie.selectUser(rUser) ) ).to.be.null
return expect(Promise.resolve( userPromesie.selectUser(rUser) ) ).to.be.null
userPromesie.selectUser(rUser).then((result) => result.to.be.null
【问题讨论】:
【参考方案1】:selectUser
返回一个Promise
,您需要等待它解决才能对它进行断言。这可以通过两种方式实现:
then
,在该块中调用 done()
函数。
使用async/await
,你声明你的函数async
和你await
Promise
以下是async/await
方法的示例:
it('should do something with the user', async () =>
const user = await userPromise.selectUser(rUser);
expect(user).to.be.null;
);
我强烈建议您阅读 Promises 以了解更多信息:https://developer.mozilla.org/en-US/docs/Web/javascript/Reference/Global_Objects/Promise
编辑下面是使用 done 方法的示例:
it('should do something with the user', (done) =>
userPromise.selectUser(rUser).then((user) =>
expect(user).to.be.null;
done();
);
);
【讨论】:
同样的错误......,我知道 promesis 是如何工作的,然后我尝试了,最后...... 我添加了一个使用done
方法的示例。希望这对你有用!以上是关于摩卡柴解决多个承诺的主要内容,如果未能解决你的问题,请参考以下文章