【发布时间】:2020-03-05 20:43:10
【问题描述】:
我有这个功能,我想用ava 和browser-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()
})
但我在ava:Error: Test finished without running any assertions 中收到错误消息。
事件监听器的代码被执行,只是ava在退出测试之前没有到达它。
有人知道如何解决这个问题吗?
我试过test.serial、async await、t.end() 无济于事。请帮忙。
【问题讨论】:
标签: javascript unit-testing settimeout jsdom ava