我想测试一些需要Discord.js客户端“准备好”的函数,但我没有找到如何让Jest在事件发生后运行我的测试。我尝试在像
这样的函数中移动测试client.on("ready", () => {
test(...);
})
但是当我运行npm test
时,它会检测到0次测试。
我还尝试在测试中编写client.on
函数,但它没有检测到expect
并且在没有检查任何内容的情况下通过。
test("sample", () => {
client.on("ready", () => {
expect(...);
})
})
我试着看docs,但我没找到任何东西。 有人可以帮帮我吗?
答案 0 :(得分:1)
您可以创建一个解析并且测试等待它的承诺
test("sample", async() => {
const p = new Promise((resolve) => {
client.on("ready", () => {
resolve()
})
})
await p
expect(...);
})
另请参阅测试中的work with asynchronous code
答案 1 :(得分:0)
通过传递done
参数,Jest将等到done()
被调用。
test("sample", done => {
client.on("ready", () => {
expect(...);
done();
})
})