<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          vue 組件測試

          共 1367字,需瀏覽 3分鐘

           ·

          2022-08-02 07:52


          Vue Test Utils 是 Vue.js 官方的單元測試實用工具庫。它在瀏覽器和 Node.js 環(huán)境中皆可運行,并能配合任何 test runner 使用。


          選擇一個測試運行器

          測試運行器 (test runner) 就是運行測試的程序。


          主流的 JavaScript 測試運行器有很多,但 Vue Test Utils 都能夠支持。它是與測試運行器無關(guān)的。


          當然在我們選用測試運行器的時候也需要考慮一些事項:功能集合、性能和對單文件組件預(yù)編譯的支持等。在仔細比對現(xiàn)有的庫之后,我們推薦其中的兩個測試運行器:


          Jest 是功能最全的測試運行器。它所需的配置是最少的,默認安裝了 JSDOM,內(nèi)置斷言且命令行的用戶體驗非常好。不過你需要一個能夠?qū)挝募M件導(dǎo)入到測試中的預(yù)處理器。我們已經(jīng)創(chuàng)建了 vue-jest 預(yù)處理器來處理最常見的單文件組件特性,但仍不是 vue-loader 100% 的功能。


          mocha-webpack 是一個 webpack + Mocha 的包裹器,同時包含了更順暢的接口和偵聽模式。這些設(shè)置的好處在于我們能夠通過 webpack + vue-loader 得到完整的單文件組件支持,但這本身是需要很多配置的。


          瀏覽器環(huán)境

          Vue Test Utils 依賴瀏覽器環(huán)境。技術(shù)上講你可以將其運行在一個真實的瀏覽器,但是我們并不推薦,因為在不同的平臺上都啟動真實的瀏覽器是很復(fù)雜的。我們推薦取而代之的是用 JSDOM 在 Node 虛擬瀏覽器環(huán)境運行測試。


          Jest 測試運行器自動設(shè)置了 JSDOM。對于其它測試運行器來說,你可以在你的測試入口處使用 jsdom-global 手動設(shè)置 JSDOM。


          測試單文件組件

          Vue 的單文件組件在它們運行于 Node 或瀏覽器之前是需要預(yù)編譯的。我們推薦兩種方式完成編譯:通過一個 Jest 預(yù)編譯器,或直接使用 webpack。


          vue-jest 預(yù)處理器支持基本的單文件組件功能,但是目前還不能處理樣式塊和自定義塊,這些都只在 vue-loader 中支持。如果你依賴這些功能或其它 webpack 特有的配置項,那么你需要基于 webpack + vue-loader 進行設(shè)置。


          測試規(guī)范示例

          import { mount } from '@vue/test-utils'import Component from './component'
          describe('Component', () => { test('is a Vue instance', () => { const wrapper = mount(Component) expect(wrapper.isVueInstance()).toBeTruthy() })})


          當你用 Vue Test Utils 掛載一個組件時,你可以訪問到 HTML 根元素。這可以保存為一個快照為 Jest 快照測試所用。


          test('renders correctly', () => {  const wrapper = mount(Component)  expect(wrapper.element).toMatchSnapshot()})


          瀏覽 35
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  操逼地址| 色婷亚洲五月天 | 色婷婷亚洲精品天天 | 色综合区 | 大香樵伊人 |