【问题标题】:vue-test-utils finding button does not work with find option objectvue-test-utils 查找按钮不适用于查找选项对象
【发布时间】:2021-11-08 00:45:00
【问题描述】:

根据docs,可以通过名称找到包装器的元素。

使用查找选项对象,Vue Test Utils 允许通过包装组件上的组件名称来选择元素。

给出的例子是

const buttonWrapper = wrapper.find({ name: 'my-button' })
buttonWrapper.trigger('click')

在我的 vue 组件中,我有三个按钮。我想测试所有三个按钮的功能,但我不想使用wrapper.findAll("button").at(1) 选择第二个按钮,因为当按钮的顺序改变时,测试失败。所以我决定为每个按钮命名,并使用选项对象按名称查找它们。

在我的组件中我有:

<button class="button is-success" name="save-button">Opslaan</button>

在我的测试中,我有:

const button = wrappedAddSubject.find({name:"save-button"})

这将返回 undefined 而不是按钮。我做错了什么?

【问题讨论】:

    标签: vue.js vue-test-utils


    【解决方案1】:

    我认为“name”是指组件的名称,而不是html元素的属性“name”。

    例如,如果你有一个组件:

    Vue.component('save-button', {
      template: "<button>Click</button>
    })
    

    你可以使用你的语法通过它的名字找到这个组件。

    【讨论】:

    • 我不这么认为。文档中指出 find 不能用于查找组件。 findComponent 函数用于查找组件
    • 这只是一个弃用警告,findComponent 使用的“名称”选项与find 使用的选项相同,将被删除。它不会改变它的目的。如答案所述,您的代码中的name 是一个属性,因此您应该为属性使用适当的选择器:find('button[name="save-button"]')
    猜你喜欢
    • 1970-01-01
    • 2022-01-09
    • 2020-10-25
    • 1970-01-01
    • 2019-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-09
    相关资源
    最近更新 更多