Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在事件发生后执行测试_Javascript_Node.js_Continuous Integration_Jestjs_Discord.js - Fatal编程技术网

Javascript 如何在事件发生后执行测试

Javascript 如何在事件发生后执行测试,javascript,node.js,continuous-integration,jestjs,discord.js,Javascript,Node.js,Continuous Integration,Jestjs,Discord.js,我想测试一些需要Discord.js客户端“准备就绪”的函数,但我找不到如何让Jest在事件发生后运行我的测试。我试着在函数中移动测试,比如 client.on("ready", () => { test(...); }) 但是当我运行npm测试时,它检测到0个测试。 我还尝试在测试中编写client.on函数,但它没有检测到expect,也没有检查任何内容就通过了 test("sample", () => { client.on("ready", () => {

我想测试一些需要Discord.js客户端“准备就绪”的函数,但我找不到如何让Jest在事件发生后运行我的测试。我试着在函数中移动测试,比如

client.on("ready", () => {
  test(...);
})
但是当我运行
npm测试时,它检测到0个测试。
我还尝试在测试中编写
client.on
函数,但它没有检测到
expect
,也没有检查任何内容就通过了

test("sample", () => {
  client.on("ready", () => {
    expect(...);
  })
})
我试着看了看照片,但什么也没找到。
有人能帮我吗?

您可以创建一个解决问题的承诺,然后测试等待它

test("sample", async() => {
  const p = new Promise((resolve) => {
     client.on("ready", () => {
       resolve()
     })
  })
  await p
  expect(...);

})

还可以了解如何通过传递
done
参数在测试中执行操作,Jest将等待调用
done()

test("sample", done => {
  client.on("ready", () => {
    expect(...);
    done();
  })
})