Ava在addEventListener()上测试setTimeout()

用户名

我有这个功能,我想测试avabrowser-env

function foo () {
  setTimeout(() => {
    const event = new CustomEvent('pushcommand', { detail: 'foo', bubbles: true })
    document.getElementById('command-history').dispatchEvent(event)
  }, 1)
}

我的测试代码是:

import test from 'ava'
import foo from 'foo.js'

test('foo', t => {
  document.body.innerHTML = '<ul id="command-history"></ul>'
  document.getElementById('command-history').addEventListener('pushcommand', event => {
    t.is(event.detail, 'foo')
  })
  foo()
})

但是我在出现错误avaError: Test finished without running any assertions来自事件侦听器的代码已执行,只是ava在退出测试之前未到达它。

有人知道如何解决这个问题吗?

我试过test.serialasync awaitt.end()无济于事。请帮忙。

迈克尔·麦克劳克林

异步等待可能很棘手。测试可能在调用异步回调之前结束。因为没有返回承诺(异步),所以ava不知道要等到测试完成。这样的事情应该有助于与ava交流,直到诺言完成

import test from 'ava'
import foo from 'foo.js'

function foo () {
  setTimeout(() => {
    const event = new CustomEvent('pushcommand', { detail: 'foo', bubbles: true })
    document.getElementById('command-history').dispatchEvent(event)
  }, 1)
}

test('foo', async (t) => {
  document.body.innerHTML = '<ul id="command-history"></ul>'
  await new Promise((resolve, reject) => {
    window.addEventListener('error', reject)
    document.getElementById('command-history').addEventListener('pushcommand', event => {
      t.is(event.detail, 'foo')
      resolve()
    })
    foo()
  })
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

addEventListener + setTimeout

来自分类Dev

用 ava 测试 promise

来自分类Dev

addEventListener取决于setTimeout

来自分类Dev

AVA测试设置:“意外的令牌导出”

来自分类Dev

AVA + React-Native的测试配置

来自分类Dev

获取在AVA中运行的并发测试数

来自分类Dev

AVA测试设置:“意外的令牌导出”

来自分类Dev

在 AVA 测试中找不到模块

来自分类Dev

使用setTimeout测试IIFE

来自分类Dev

Javascript:addEventListener仅在setTimeout中工作

来自分类Dev

茉莉花测试,addEventListener

来自分类Dev

如何使用AVA和Mongoose运行并行测试

来自分类Dev

针对数据库的集成测试-AVA

来自分类Dev

访问全局变量时AVA测试失败

来自分类Dev

在addEventListener上的非法调用

来自分类Dev

仅首页上的addEventListener

来自分类Dev

尝试{...}在addEventListener上捕获{...}

来自分类Dev

使用setTimeout()暂停Mocha测试

来自分类Dev

使用setTimeout()暂停Mocha测试

来自分类Dev

Ava 使用承诺测试图像加载:测试返回的承诺从未解决

来自分类Dev

无法在“ EventTarget”上执行“ addEventListener”

来自分类Dev

在 window.addEventListener 函数中测试代码

来自分类Dev

如何使用AVA框架基于某些条件(例如环境变量)跳过测试执行

来自分类Dev

ava测试运行程序写入EPIPE和ECONNRESET错误

来自分类Dev

使用 Create React App Boilerplate 设置 AVA 测试运行器

来自分类Dev

测试在没有运行任何断言的情况下完成(ava-nodejs)

来自分类Dev

使用setTimeout的基本JavaScript承诺测试

来自分类Dev

使用setTimeout的基本JavaScript承诺测试

来自分类Dev

反应如何测试与setTimeout反应组件