gpt4 book ai didi

vue.js - 如何在 stub 中触发事件? [vue-test-utils]

转载 作者:搜寻专家 更新时间:2023-10-30 22:11:42 24 4
gpt4 key购买 nike

我正在尝试像这样测试一个组件事件:

// template: <form @submit.prevent="save"></form>
const save = jest.fn()
const wrapper = mount(MyComponent, {methods: { save }})
wrapper.find('form').trigger('submit.prevent')
expect(save).toBeCalled() // Called successfully

事件调用组件方法的地方。效果很好
但是如果我使用自定义组件,则不会调用组件方法

// template: <my-custom-form @submit="save"></my-custom-form>
const save = jest.fn()
const wrapper = mount(MyComponent, {methods: { save }, stubs: ['my-custom-form']})
wrapper.find('my-custom-form-stub').trigger('submit')
expect(save).toBeCalled() // Expected mock function to have been called, but it was not called.

如何解决?

最佳答案

来自@writofmandamus,在已接受答案的评论中,提供了一个更通用的使用答案,因为将事件绑定(bind)更改为 .native 可能是不可能或不需要的。

您可以从组件 stub 发出事件:

wrapper.find('my-custom-component-stub').vm.$emit('custom-event');

关于vue.js - 如何在 stub 中触发事件? [vue-test-utils],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53447616/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com