在 vue-test-utils 中测试鼠标悬停事件
Testing mouseover event in vue-test-utils
我正在尝试对 @mouseover 和 @mouseleave 事件进行单元测试,该事件根据鼠标悬停显示 v-card-actions。我在我的 vuejs2 webpack 应用程序中使用 vue-test-utils。这是我在网上找到的内容:vue-utlis mouse click exemple。在此先感谢所有提供帮助的人
这是我的代码实际 html 模板代码:
<v-card class="menuCard pa-1 elevation-2 f-basis-0 my-2"
@mouseover="isBlockAct = true" @mouseleave="isBlockAct = (!checked?
false:true)">
<v-checkbox v-model="checked" id="checkbox" class="diCheckbox ma-0" hide-
details></v-checkbox>
<v-card-actions class="myUpHere pa-0">
<v-layout row :class="{'isAct': isBlockAct, 'isNotAct': !isBlockAct}">
</v-card>
这是我在 spec.js 代码中尝试的:
describe("Over event", () => {
it("shows the icons if the card is over or not", () => {
const wrapper = mount(MenuRepasRecetteCard, {
propsData: {}
});
wrapper.find(".menuCard").trigger("mouseover");
expect(wrapper.find(".isAct").text()).contain("remove_red_eye");
});
你需要等待事件被vue处理。
describe("Over event", (done) => {
it("shows the icons if the card is over or not", () => {
const wrapper = mount(MenuRepasRecetteCard, {
propsData: {}
});
wrapper.find(".menuCard").trigger("mouseover");
wrapper.vm.$nextTick( () => {
expect(wrapper.find(".isAct").text()).contain("remove_red_eye");
done();
});
});
});
很遗憾,我无法对 Lars 的回答发表评论。
文档说不需要 nextTick。:
Vue Test Utils 同步触发事件。因此,不需要 Vue.nextTick。
-来源:https://vue-test-utils.vuejs.org/guides/dom-events.html#important
await
关键字可用于等待触发器完成:
await wrapper.find(".menuCard").trigger("mouseover");
async
也需要添加到闭包中:
it("shows the icons if the card is over or not", async () => {
我正在尝试对 @mouseover 和 @mouseleave 事件进行单元测试,该事件根据鼠标悬停显示 v-card-actions。我在我的 vuejs2 webpack 应用程序中使用 vue-test-utils。这是我在网上找到的内容:vue-utlis mouse click exemple。在此先感谢所有提供帮助的人
这是我的代码实际 html 模板代码:
<v-card class="menuCard pa-1 elevation-2 f-basis-0 my-2"
@mouseover="isBlockAct = true" @mouseleave="isBlockAct = (!checked?
false:true)">
<v-checkbox v-model="checked" id="checkbox" class="diCheckbox ma-0" hide-
details></v-checkbox>
<v-card-actions class="myUpHere pa-0">
<v-layout row :class="{'isAct': isBlockAct, 'isNotAct': !isBlockAct}">
</v-card>
这是我在 spec.js 代码中尝试的:
describe("Over event", () => {
it("shows the icons if the card is over or not", () => {
const wrapper = mount(MenuRepasRecetteCard, {
propsData: {}
});
wrapper.find(".menuCard").trigger("mouseover");
expect(wrapper.find(".isAct").text()).contain("remove_red_eye");
});
你需要等待事件被vue处理。
describe("Over event", (done) => {
it("shows the icons if the card is over or not", () => {
const wrapper = mount(MenuRepasRecetteCard, {
propsData: {}
});
wrapper.find(".menuCard").trigger("mouseover");
wrapper.vm.$nextTick( () => {
expect(wrapper.find(".isAct").text()).contain("remove_red_eye");
done();
});
});
});
很遗憾,我无法对 Lars 的回答发表评论。 文档说不需要 nextTick。:
Vue Test Utils 同步触发事件。因此,不需要 Vue.nextTick。
-来源:https://vue-test-utils.vuejs.org/guides/dom-events.html#important
await
关键字可用于等待触发器完成:
await wrapper.find(".menuCard").trigger("mouseover");
async
也需要添加到闭包中:
it("shows the icons if the card is over or not", async () => {