作者:zhuzhu-2012_389 | 来源:互联网 | 2023-09-11 12:18
问题描述
在karma能不能测试hover触发的样式
问题出现的环境背景及自己尝试过哪些方法
在vue的环境下写东西,想到karma能创建浏览器环境,一般来说样式是能供mocha之类的拿到的。用mouseenter模拟hover,这样应该能拿到hover之后的样式。但是经过以下代码实现,发现并不能:
相关代码
test-hover.vue文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| |
test-hover-spec.js文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| import chai, { expect } from 'chai'
import { mount } from '@vue/test-utils'
import TestHover from '../../src/packages/test-hover'
const triggerMouseEnterEvent = function(elm) {
const name = 'mouseenter'
const evt = document.createEvent('MouseEvents');
evt.initEvent('mouseenter');
elm.dispatchEvent
? elm.dispatchEvent(evt)
: elm.fireEvent('onmouseenter', evt);
return elm;
};
describe('TestHover', () => {
it('可拿到hover之后的样式', () => {
const wrapper = mount(TestHover, {
attachToDocument: true,
propsData: {}
})
console.log(getComputedStyle(tt.element).color) // rgb(255, 0, 0)
const test3 = document.getElementById('test3')
const res = triggerMouseEnterEvent(test3, 'mouseenter')
console.log(getComputedStyle(res).color) // 期望拿到rgb(0, 0, 255)
})
}) |
你期待的结果是什么?
期望的结果是在mouseenter(模拟hover)之后,下一行log打印