当我想用 jest 测试我的 nuxt js 项目时,附加事件没有触发
Attached Event is not firing when I want to test my nuxt js project with jest
我正在使用 nuxt js + jest 构建一个 Web 应用程序
我的nuxt js组件代码:
export default {
mounted () {
document.addEventListener('click', this.eventClick)
},
destroyed () {
document.removeEventListener('click', this.eventClick)
},
methods: {
eventClick () {
console.log('click event triggered!')
}
}
}
我开玩笑的代码:
import Dashboard from '~/pages/admin/dashboard'
test('test click', () => {
wrapper = mount(Dashboard)
wrapper.trigger('click')
})
问题是:
jest 无法触发 click 事件并且代码 console.log('click event triggered!')
未执行。
我该如何解决这个问题?
事件侦听器在 document
上,因此单击 wrapper
不会触发 click
事件。
而是在 document.body
上触发事件:
test('test click', () => {
const eventClick = jest.spyOn(Dashboard.options?.methods || Dashboard.methods, 'eventClick')
shallowMount(Dashboard)
document.body.click()
expect(eventClick).toHaveBeenCalled()
})
我正在使用 nuxt js + jest 构建一个 Web 应用程序
我的nuxt js组件代码:
export default {
mounted () {
document.addEventListener('click', this.eventClick)
},
destroyed () {
document.removeEventListener('click', this.eventClick)
},
methods: {
eventClick () {
console.log('click event triggered!')
}
}
}
我开玩笑的代码:
import Dashboard from '~/pages/admin/dashboard'
test('test click', () => {
wrapper = mount(Dashboard)
wrapper.trigger('click')
})
问题是:
jest 无法触发 click 事件并且代码 console.log('click event triggered!')
未执行。
我该如何解决这个问题?
事件侦听器在 document
上,因此单击 wrapper
不会触发 click
事件。
而是在 document.body
上触发事件:
test('test click', () => {
const eventClick = jest.spyOn(Dashboard.options?.methods || Dashboard.methods, 'eventClick')
shallowMount(Dashboard)
document.body.click()
expect(eventClick).toHaveBeenCalled()
})