Vue CLI 3 单元测试(组件挂载)

原始的单元测试写法转换到Vue CLI 3集成的单元测试;
发现vue提供了一些方便的方法如mount()挂载组件得到一个wrapper包裹器。wrapper包裹器提供一些方便的方法。相比之前省事多了,这里做记录,代码中有注释!

import { expect } from 'chai';
import { mount } from '@vue/test-utils';
import Button from '@/components/button/button.vue';

describe('Button.vue', () => {
  // 现在挂载组件,你便得到了这个包裹器
  // 包裹器的作用是Vue为其添加了方便的方法
  // 也可以通过wrapper.vm获取实例进行原生操作
  // 具体文档:https://vue-test-utils.vuejs.org/zh/api/wrapper/#%E5%B1%9E%E6%80%A7
  const wrapper = mount(Button);

  it('可以禁用button', () => {
    const disabled = true;
    wrapper.setProps({ disabled });
    // 写法一
    // 从包裹器wrapper解构得到实例vm
    const { vm } = wrapper;
    // 通过实例的方法getAttribute()获取对应的属性
    // 通过实例的方法我们可以进行原生js的dom操作获取想要的属性
    expect(vm.$el.getAttribute('disabled')).to.eq('disabled');

    // 写法二
    // Vue直接在包裹器wrapper上定义了一些方便的方法如:attributes()
    // expect(wrapper.attributes('disabled')).to.eq('disabled');
  });
  it('正确添加icon', () => {
    const icon = 'settings';
    wrapper.setProps({ icon });
    // 选中子组件
    const useElement = wrapper.find('use');
    expect(useElement.attributes('href')).to.eq(`#i-${icon}`);
  });
});
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • UIImage转成base64串 UIImage *image = self.pickImageView.imag...
    eduzon阅读 549评论 0 0
  • 第一次通过这种方式 利用碎片时间学习…… 第一次交作业~ 台灯下拍得有点黑哈…^_^
    榆樹下雜貨鋪阅读 242评论 2 0
  • 业务做大就无法做精吧,你看,获得电力指标就不行 对国网物料的理解:市面上啥样的都有,但物资部只列出其中一部分供选用...
    阳阳_b656阅读 313评论 0 0
  • 学习视频:常量 学习视频:变量 一、常量 定义:表示固定的一个值类型:1.整数常量System.out.print...
    Laun_lee阅读 144评论 0 0