如何写hover测试用例?
来源:8-10 给 Tooltip 组件添加测试

宝慕林6874319
2024-03-18
老师好,我在编写hover的测试用例,但尝试triggerArea.trigger(‘mouseenter’)发现onVisibleChange并没有触发,请问这里是事件名称不对吗?hover测试应该如何写?
test('hover测试', async () => {
const wrapper = await mount(() =>
<Tooltip content="Hello Tooltip" trigger="hover" onVisible-change={onVisibleChange}>
<button id='trigger'>Trigger</button>
</Tooltip>
, {
attachTo: document.body
}
)
const triggerArea = wrapper.find('#trigger')
onVisibleChange.mockClear()
triggerArea.trigger('mouseenter')
await vi.runAllTimers()
console.log(wrapper.html())
// 测试失败,onVisibleChange没有被调用
expect(onVisibleChange).toHaveBeenCalled()
// expect(wrapper.find('.ds-tooltip__popper').exists()).toBeTruthy()
})
写回答
2回答
-
同学你好
能否把你的代码库(git)提供一下,我在本地帮你看看
022024-03-19 -
张轩
2024-03-19
同学你好
经查原因在这里:
// Tooltip.test.tsx 64 行 你写的是: const triggerArea = wrapper.find('#trigger') 但是这个事件其实是绑定在它的外层容器上的,vitest 内部实现不是真实 DOM 所以类似的冒泡系统应该是没有的 所以要改成 const triggerArea = wrapper.find('.ds-tooltip__trigger') 然后测试就完美通过啦
00
相似问题