首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何测试自定义事件是从子组件触发的

如何测试自定义事件是从子组件触发的
EN

Stack Overflow用户
提问于 2018-11-09 09:11:24
回答 1查看 2.9K关注 0票数 2

我有一个具有以下结构的Vue组件

代码语言:javascript
复制
// parent-component.vue
<main>
  <component :is="my.component" @custom-event="callback"/>
</main>

子组件始终具有以下mixin

代码语言:javascript
复制
// child-shared-mixin.js
export default {
  mounted() {
    this.$emit('custom-event')
  },
}

下面是子组件的示例

代码语言:javascript
复制
// child-component.vue
<script>
  import { ChildSharedMixin } from 'mixins'

  export default {
    mixins: [
      ChildSharedMixin
    ],
  }
</script>

因此,每当挂载child时,我都会触发一个事件到父进程,然后执行回调。

使用JestVue Test Utils,如何测试mixin是否触发了custom-event

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-09 10:03:58

返回包含包装器vm发出的自定义事件的对象。

https://vue-test-utils.vuejs.org/api/wrapper/#emitted

因此,要测试子组件,可以执行以下操作:

代码语言:javascript
复制
describe('myComponent',()={
    it('should trigger custom-event on mounted hook',()=>{
        let target=mount(myComponent);
        expect(target.emitted()['custom-event']).toBeTruthy();
    })
})

要测试父组件,则需要进行相反的操作--通过模拟事件并期待回调被调用。看一看:

https://vue-test-utils.vuejs.org/api/wrapper/trigger.html

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53222768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档