摩卡柴解决多项承诺

Mocha chai resolve multiple promises

我正在尝试 运行 对此承诺进行测试,但出现此错误:

"Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure"完成()"is called; if returning to Promise, ensure it resolves. (C:\Users\Ranieri\Documents\Projetos\Node Js\testestest\test\libs\registerUser.test.js)"

我已经增加了超时时间,但还是没有解决问题

我在 Whosebug 上搜索了异步测试,但没有找到任何类似的东西,也没有找到类似的东西

我的测试代码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

selectUser returns a 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();
    });

});