1

我似乎无法使用 vue-test-utils 和 Vue 2 “单击”这些选择框。我使用的是 mocha + webpack。

我通过看到visible-change事件从未像点击时那样触发来确定这一点。这是我的规范文件的样子:

...
const wrapper = mount(EntityItem, { propsData });
const selectBox = wrapper.find("el-select");

// I tried these:
selectBox.trigger("click");
selectBox.trigger("click.native");

如果这不起作用,作为最后的手段,我必须手动更改model属性以模拟组件更改。

- - 更新 - -

当我为点击事件设置回调时,我看到了一些东西,但我无法在这个选择输入组件中“选择”任何东西。

4

2 回答 2

0

Whitespace 上面的回答有所帮助,但也需要确保您使用

await Vue.nextTick() 

在您的期望声明之前。像这样:

wrapper.findAll('.el-select-dropdown__item').at(1).trigger('click');
await Vue.nextTick();
expect(enterResultBtn.is('[disabled]')).toBe(true);

这允许 DOM 更新它的循环,更多信息在这里

于 2020-11-12T15:12:35.180 回答
0

您正在使用的组件不使用select输入元素。为了模拟选择一个选项,你会做这样的事情。

wrapper.findAll('.el-select-dropdown__item').at(1).trigger('click'); // simulates clicking of one of the options

如果您想模拟单击选择元素本身(以显示下拉菜单)。您可以执行以下操作。

 wrapper.find('.el-select-dropdown').trigger('click');
于 2020-08-03T14:45:11.463 回答