element ui 使用@vue/test-utils测试,无法触发button

vue

<template>
  <div class="hello">
    // 这种方式不行
    <el-button type="primary" @click="add()" id="add">新增</el-button>
    // 这种方式可以通过测试
    <div id="add"  @click="add()"></div>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  data() {
    return {
      count: 0
    }
  },
  methods: {
    add() {
      this.count++
      console.log(this.count);
    }
  }
}
</script>

test

import { shallowMount, createLocalVue } from '@vue/test-utils'
import HelloWorld from '../../src/views/HelloWorld.vue'
import ElementUI from 'element-ui';

const localVue = createLocalVue();
localVue.use(ElementUI);

describe('HelloWorld.vue', () => {
  it('测试count组件能否正常显示并增加', () => {
    const wrapper = shallowMount(HelloWorld, {localVue})
    expect(wrapper.vm.count).toBe(0)
    wrapper.find('#add').trigger('click')
    expect(wrapper.vm.count).toBe(1)
    
  })
})

用element ui 的就不能通过测试,没有触发btn

阅读 6k
2 个回答

SOF找到了,改为mount就可以了

新手上路,请多包涵

你好,我使用了mount,但是还是找不到ELement UI 写的button。请问你遇到过吗,怎样解决呢。感觉是测试时,Element UI并没有生成DOM,请问你知道如何解决吗?
Jest配置如下:
图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题