Vue CLI 3 單元測試(組件掛載)

原始的單元測試寫法轉(zhuǎn)換到Vue CLI 3集成的單元測試;
發(fā)現(xiàn)vue提供了一些方便的方法如mount()掛載組件得到一個wrapper包裹器。wrapper包裹器提供一些方便的方法。相比之前省事多了,這里做記錄,代碼中有注釋!

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

describe('Button.vue', () => {
  // 現(xiàn)在掛載組件,你便得到了這個包裹器
  // 包裹器的作用是Vue為其添加了方便的方法
  // 也可以通過wrapper.vm獲取實例進(jìn)行原生操作
  // 具體文檔: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解構(gòu)得到實例vm
    const { vm } = wrapper;
    // 通過實例的方法getAttribute()獲取對應(yīng)的屬性
    // 通過實例的方法我們可以進(jìn)行原生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}`);
  });
});
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • UIImage轉(zhuǎn)成base64串 UIImage *image = self.pickImageView.imag...
    eduzon閱讀 547評論 0 0
  • 第一次通過這種方式 利用碎片時間學(xué)習(xí)…… 第一次交作業(yè)~ 臺燈下拍得有點(diǎn)黑哈…^_^
    榆樹下雜貨鋪閱讀 241評論 2 0
  • 業(yè)務(wù)做大就無法做精吧,你看,獲得電力指標(biāo)就不行 對國網(wǎng)物料的理解:市面上啥樣的都有,但物資部只列出其中一部分供選用...
    陽陽_b656閱讀 298評論 0 0
  • 學(xué)習(xí)視頻:常量 學(xué)習(xí)視頻:變量 一、常量 定義:表示固定的一個值類型:1.整數(shù)常量System.out.print...
    Laun_lee閱讀 144評論 0 0