我有一个异步函数,它等待一个承诺,当它收到一些“数据”时它会解决。但是,当我运行测试时,我得到一个Error: Timeout of 300000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
这是我的代码片段,我在松露中使用它来测试可靠性合约:
contract("Test", async (accounts) => {
it("test description", async () => {
let first = await getFirstEvent(oracle.LogResult({fromBlock:'latest'}));
let second = await getFirstEvent(oracle.LogResult({fromBlock:'latest'}));
Promise.all([first,second]);
//some assertion code
});
const getFirstEvent = (_event) => {
return new Promise((resolve, reject) => {
_event.once('data', resolve).once('error', reject)
});
}
});
承诺不是解决了吗?我可以在回调中看到“数据”返回,因为我正在测试的solidity 代码中发出回调事件。