久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      什么是單元測(cè)試?Vue 組件怎么進(jìn)行單元測(cè)試?

      本篇文章帶大家了解一下Vue 組件的單元測(cè)試,介紹一下Vue 組件配置單元測(cè)試,進(jìn)行單元測(cè)試的方法,希望對(duì)大家有所幫助!

      什么是單元測(cè)試?Vue 組件怎么進(jìn)行單元測(cè)試?

      我們先來(lái)簡(jiǎn)單解釋一下單元測(cè)試:就是對(duì)函數(shù)的輸入輸出進(jìn)行測(cè)試,使用斷言的方式,判斷我們輸入的用例的結(jié)果和我們實(shí)際輸入的結(jié)果是否相同

      組件的單元測(cè)試就是使用單元測(cè)試工具,對(duì)組件的各種狀態(tài)和行為進(jìn)行測(cè)試

      組件單元測(cè)試的好處

      • 提供描述組件行為的文檔
      • 節(jié)省手動(dòng)測(cè)試的時(shí)間
      • 減少研發(fā)新特性時(shí)產(chǎn)生的bug
      • 改進(jìn)設(shè)計(jì)
      • 促進(jìn)重構(gòu)

      準(zhǔn)備工作

      在我們進(jìn)行單元測(cè)試模擬之前,我們需要對(duì)環(huán)境進(jìn)行一些配置

      安裝依賴

      • Vue Test Utils (學(xué)習(xí)視頻分享:vuejs教程)
      npm install --save-dev jsdom jsdom-global
      • Jest
      npm install --save-dev jest
      • vue-jest
      npm install --save-dev @vue/vue2-jest # (use the appropriate version)
      • babel-jest
      yarn add --dev babel-jest @babel/core

      安裝測(cè)試依賴

      yarn add jest @vue/test-utils vue-jest babel-jest -D -W

      這里有點(diǎn)小問(wèn)題,如果使用下發(fā)的命令進(jìn)行安裝的話會(huì)出現(xiàn)一點(diǎn)點(diǎn)的小錯(cuò)誤

      yarn add jest @vue/test-utils vue-jest babel-jest -D

      報(bào)錯(cuò)截圖:

      什么是單元測(cè)試?Vue 組件怎么進(jìn)行單元測(cè)試?

      Jest 的配置

      jest.config.js

      module.exports = {   "testMatch": ["**/__tests__/**/*.[jt]s?(x)"],   "moduleFileExtensions": [     "js",     "json",     // 告訴 Jest 處理 `*.vue` 文件     "vue"   ],   "transform": {     // 用 `vue-jest` 處理 `*.vue` 文件     ".*\.(vue)$": "vue-jest",     // 用 `babel-jest` 處理 js     ".*\.(js)$": "babel-jest"    } }

      基于上面的測(cè)試文件的配置,我們會(huì)將每個(gè)測(cè)試文件的配置放置于__tests__

      創(chuàng)建測(cè)試用例:

      項(xiàng)目地址:https://gitee.com/liuyinghao123/task/tree/master/Part7/element

      我們使用:packagesinputinput 組件進(jìn)行測(cè)試

      packagesinput 文件夾下 創(chuàng)建 __tests__ 文件夾 后創(chuàng)建 input.test.js

      這里先給大家普及一下幾個(gè)常用的API

      什么是單元測(cè)試?Vue 組件怎么進(jìn)行單元測(cè)試?

      測(cè)試用例1 判斷是否是文本框

      import input from '../src/input.vue' import { mount } from '@vue/test-utils' // 掛載  describe('lg-input', () => {   test('input-text', () => {     const wrapper = mount(input)     expect(wrapper.html()).toContain('input type="text"')   }) })

      這里我們需要 使用@vue/test-utils提供的mount方法進(jìn)行掛載,注意,這里只是在內(nèi)存中進(jìn)行掛載,并且我們需要保存這個(gè)包裹器返回的內(nèi)容

      const wrapper = mount(input)

      這個(gè)用例很簡(jiǎn)單,就是想要知道我們生產(chǎn)的是否是一個(gè)文本框,這里一個(gè)簡(jiǎn)單的測(cè)試用例就寫(xiě)完了,接著我們運(yùn)行一下:

      yarn test

      運(yùn)行結(jié)果

      什么是單元測(cè)試?Vue 組件怎么進(jìn)行單元測(cè)試?

      修改用例

      expect(wrapper.html()).toContain('input type="tex123123123t"')

      運(yùn)行結(jié)果

      什么是單元測(cè)試?Vue 組件怎么進(jìn)行單元測(cè)試?

      什么是單元測(cè)試?Vue 組件怎么進(jìn)行單元測(cè)試?

      測(cè)試失敗,提示沒(méi)有找到input type="tex123123123t"的內(nèi)容,符合預(yù)期,沒(méi)有問(wèn)題。

      測(cè)試用例2 判斷是否是密碼框

       test('input-password', () => {     const wrapper = mount(input, {       propsData: {         type: 'password'       }     })     expect(wrapper.html()).toContain('input type="password"')   })

      我們可以通過(guò)propsData來(lái)進(jìn)行設(shè)置組件的props屬性

      運(yùn)行結(jié)果

      什么是單元測(cè)試?Vue 組件怎么進(jìn)行單元測(cè)試?

      測(cè)試用例3 組件接收值是否正確

        test('input-password', () => {     const wrapper = mount(input, {       propsData: {         type: 'password',         value: 'admin'       }     })     expect(wrapper.props('value')).toBe('admin')   })

      這里我們通過(guò)wrapper.props獲取他的props屬性,拿到這個(gè)值之后,進(jìn)行判斷

      運(yùn)行結(jié)果

      什么是單元測(cè)試?Vue 組件怎么進(jìn)行單元測(cè)試?

      測(cè)試用例4 快照的使用

        test('input-snapshot', () => {     const wrapper = mount(input, {       propsData: {         type: 'text',         value: 'admin'       }     })     expect(wrapper.vm.$el).toMatchSnapshot()   })

      我們要把掛載的dom對(duì)象拍一個(gè)快照,我們第一次調(diào)用這個(gè)方法的時(shí)候,他會(huì)把這個(gè)內(nèi)容掛載到一個(gè)特殊的文本文件中,當(dāng)我們?cè)俅紊a(chǎn)測(cè)試的時(shí)候,會(huì)將我們剛剛存儲(chǔ)的文件進(jìn)行對(duì)比,如果發(fā)生了變化就會(huì)出現(xiàn)測(cè)試失敗的情況

      文件結(jié)構(gòu):

      什么是單元測(cè)試?Vue 組件怎么進(jìn)行單元測(cè)試?

      修改快照的propsData

      propsData: {     type: 'password',     value: 'admin' }

      測(cè)試結(jié)果

      什么是單元測(cè)試?Vue 組件怎么進(jìn)行單元測(cè)試?

      什么是單元測(cè)試?Vue 組件怎么進(jìn)行單元測(cè)試?

      刪除快照結(jié)果,重新生成

      yarn test -u

      總結(jié)

      到這里我們的單元測(cè)試簡(jiǎn)單版 Demo 就這樣完結(jié)了,單元測(cè)試對(duì)我們進(jìn)行組件化的開(kāi)發(fā)還是非常重要的,配合 stroyBooks,我們可以做到很多

      (學(xué)習(xí)視頻分享:web前端開(kāi)發(fā))

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)