javascript - Jest setTimeout 不暂停测试

标签 javascript testing timer jestjs

it('has working hooks', async () => {
  setTimeout(() => {
    console.log("Why don't I run?")
    expect(true).toBe(true)
  }, 15000)

我已经查看了这个答案、Jest 文档和几个 GitHub 线程:

Disable Jest setTimeout mock

此时,超时内的函数没有运行。 我怎样才能让 Jest 暂停执行测试 15 秒,然后运行内部函数?

谢谢!

最佳答案

it('has working hooks', async () => {
  await new Promise(res => setTimeout(() => {
    console.log("Why don't I run?")
    expect(true).toBe(true)
    res()
  }, 15000))
})

it('has working hooks', done => {
  setTimeout(() => {
    console.log("Why don't I run?")
    expect(true).toBe(true)
    done()
  }, 15000)
})

关于javascript - Jest setTimeout 不暂停测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46077176/

相关文章:

windows - 将打印语句重定向到文件

javascript - 导航栏内的文本/ Logo 似乎在滚动时摆动/振动

asp.net - 从 Jquery 中的隐藏字段值读取值?

php - 模拟没有可用磁盘空间情况的最简单方法?

ruby - 测试绑定(bind)到 EventMachine::WebSocket 事件的 block 有哪些策略?

matlab - 定时器函数的错误处理

javascript - 生成不从零开始的范围内的随机整数

javascript - CSS 使用 flexbox 缩放 svg

ios - 使用 UIViewCells 创建计时器

c# - 匿名并行任务计时器?