国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue-cli5腳手架搭建項(xiàng)目過程詳解 -vue組件單元測試

這篇具有很好參考價值的文章主要介紹了vue-cli5腳手架搭建項(xiàng)目過程詳解 -vue組件單元測試。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

簡介

單元測試是對軟件中的最小可測試單元進(jìn)行測試。(最小可測試單元是要有結(jié)果產(chǎn)出的。例如某個方法,單獨(dú)的某個操作)
單元測試其實(shí)是伴隨著敏捷開發(fā),它是對更快開發(fā)的一種追求。早發(fā)現(xiàn)錯誤比晚發(fā)現(xiàn)錯誤會更好,保證自己的代碼符合要求

一: 搭建基于 jest 的 vue 單元測試環(huán)境 零配置開箱即用 https://jestjs.io/zh-Hans/docs/getting-started

二: 使用 vue-test-util 提高測試編碼效率 https://v1.test-utils.vuejs.org/zh/guides/

(一) 手動搭建

編寫 jest 配置文件

// jest.conf.js
const path = require('path');

module.exports = {
  rootDir: path.resolve(__dirname, '../../'), // 類似 webpack.context
  moduleFileExtensions: [ // 類似 webpack.resolve.extensions
    'js',
    'json',
    'vue',
  ],
  moduleNameMapper: {
    '^@/(.*)$': '<rootDir>/src/$1', // 類似 webpack.resolve.alias
  },
  transform: { // 類似 webpack.module.rules
    '^.+\\.js$': '<rootDir>/node_modules/babel-jest',
    '.*\\.(vue)$': '<rootDir>/node_modules/vue-jest',
  },
  setupFiles: ['<rootDir>/test/unit/setup'], // 類似 webpack.entry
  coverageDirectory: '<rootDir>/test/unit/coverage', // 類似 webpack.output
  collectCoverageFrom: [ // 類似 webpack 的 rule.include
    'src/**/*.{js,vue}',
    '!src/main.js',
    '!src/router/index.js',
    '!**/node_modules/**',
  ],
};

eslintrc.js

// 
module.exports = {
    env: {
        browser: true,
        es6: true,
        jest: true
      },
      parserOptions: {
        sourceType: 'module'
      },
}

(二) 通過vue-cli5腳手架創(chuàng)建

vue-cli5

npm install -g @vue/cli

vue create 項(xiàng)目名


我們選擇 手動配置
vue-cli5腳手架搭建項(xiàng)目過程詳解 -vue組件單元測試
上下鍵控制 空格選擇 這里選擇Babel轉(zhuǎn)碼器 Router Unit Testing 單元測試勾選上

 ? Check the features needed for your project: (Press <space> to select, <a> to toggle all, <i> to invert selection)
>( ) Babel //轉(zhuǎn)碼器,可以將ES6代碼轉(zhuǎn)為ES5代碼,從而在現(xiàn)有環(huán)境執(zhí)行。
( ) TypeScript// TypeScript是一個JavaScript(后綴.js)的超集(后綴.ts)包含并擴(kuò)展了 JavaScript 的語法,需要被編譯輸出為 JavaScript在瀏覽器運(yùn)行,目前較少人再用
( ) Progressive Web App (PWA) Support// 漸進(jìn)式Web應(yīng)用程序
( ) Router // vue-router(vue路由)
( ) Vuex // vuex(vue的狀態(tài)管理模式)
( ) CSS Pre-processors // CSS 預(yù)處理器(如:less、sass)
( ) Linter / Formatter // 代碼風(fēng)格檢查和格式化(如:ESlint)
( ) Unit Testing // 單元測試(unit tests)
( ) E2E Testing // e2e(end to end) 測試 

vue-cli5腳手架搭建項(xiàng)目過程詳解 -vue組件單元測試
選擇版本 2.x
是否開啟history模式 選擇否
vue-cli5腳手架搭建項(xiàng)目過程詳解 -vue組件單元測試
選擇樣式預(yù)處理
vue-cli5腳手架搭建項(xiàng)目過程詳解 -vue組件單元測試
語法檢測工具,這里我選擇ESLint + Standard config

Please pick a preset: Manually select features
 Check the features needed for your project: Router, Vuex, CSS Pre-processors, Linter, Unit
 Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported by default): Stylus
 Pick a linter / formatter config: (Use arrow keys)
 ESLint with error prevention only
 ESLint + Airbnb config
> ESLint + Standard config
 ESLint + Prettier

vue-cli5腳手架搭建項(xiàng)目過程詳解 -vue組件單元測試
選擇語法檢查方式,這里我選擇fix和commit時候檢查檢測

 Please pick a preset: Manually select features
 Check the features needed for your project: Router, Vuex, CSS Pre-processors, Linter, Unit
 Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported by default): Stylus
 Pick a linter / formatter config: Prettier
 Pick additional lint features: (Press <space> to select, <a> to toggle all, <i> to invert selection)
 ( ) Lint on save // 保存就檢測
>( ) Lint and fix on commit // fix和commit時候檢查

Unit Testing 勾選后 jest 回車安裝

? Please pick a preset: Manually select features
? Check the features needed for your project: Babel, Router, Vuex, CSS Pre-proce
ssors, Linter, Unit
? Choose a version of Vue.js that you want to start the project with 2.x
? Use history mode for router? (Requires proper server setup for index fallback 
in production) No
? Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported 
by default): Sass/SCSS (with dart-sass)
? Pick a linter / formatter config: Standard
? Pick additional lint features: Lint on save
? Pick a unit testing solution: (Use arrow keys)
? Jest 
  Mocha + Chai 


接下來會問你把babel,postcss,eslint這些配置文件放哪,這里隨便選,我選擇放在放package.json里

Vue CLI v5.0.8
? Please pick a preset: Manually select features
? Check the features needed for your project: Babel, Router, Vuex, CSS Pre-proce
ssors, Linter, Unit
? Choose a version of Vue.js that you want to start the project with 2.x
? Use history mode for router? (Requires proper server setup for index fallback 
in production) No
? Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported 
by default): Sass/SCSS (with dart-sass)
? Pick a linter / formatter config: Standard
? Pick additional lint features: Lint on save
? Pick a unit testing solution: Jest
? Where do you prefer placing config for Babel, ESLint, etc.? (Use arrow keys)
? In dedicated config files  // 獨(dú)立文件放
  In package.json  // 放package.json里
  ? Save this as a preset for future projects? (y/N) // 是否記錄一下以便下次繼續(xù)使用這套配置。

等待安裝完成

100 packages are looking for funding
  run `npm fund` for details

??  Invoking generators...
??  Installing additional dependencies...

added 145 packages from 105 contributors in 9.016s

139 packages are looking for funding
  run `npm fund` for details

?  Running completion hooks...

??  Generating README.md...

??  Successfully created project vue-test-util-02.
??  Get started with the following commands:

 $ cd vue-test-util-02
 $ npm run serve

運(yùn)行成功 接下來就 開始編寫我們的單元測試組件
vue-cli5腳手架搭建項(xiàng)目過程詳解 -vue組件單元測試
找到 tests/unit 目錄
example.spec.js

import { shallowMount } from "@vue/test-utils"; // 可以通過 shallowMount 方法來創(chuàng)建包裹器
import HelloWorld from "@/components/HelloWorld.vue";

describe("HelloWorld.vue", () => {
  it("renders props.msg when passed", () => {
    const msg = "new message zyj";
    // 現(xiàn)在掛載組件,你便得到了這個包裹器
    const wrapper = shallowMount(HelloWorld, {
      propsData: { msg },
    });
    expect(wrapper.text()).toMatch(msg);
  });
});

describe塊允許我們對相關(guān)的測試進(jìn)行分組。當(dāng)我們運(yùn)行測試時,我們將看到控制臺中輸出的describe塊的名稱。
describe()接受一個字符串作為組件的名稱,并接受一個函數(shù)作為測試的參數(shù)。其實(shí),如果我們只有一個測試,我們不需要將它包裝在一個describe塊中。但是當(dāng)我們有多個測試時,用這種方式組織它們是有幫助的。

斷言的期望
在 Jest 中,我們使用斷言來確定我們期望測試返回的內(nèi)容是否與實(shí)際返回的內(nèi)容相匹配。具體來說,我們使用 Jest 的 expect() 方法來實(shí)現(xiàn)這一點(diǎn),該方法使我們能夠訪問許多 “匹配器” ,幫助我們將實(shí)際結(jié)果與預(yù)期結(jié)果進(jìn)行匹配。

斷言的語法基本上是這樣的:

expect(theResult).toBe(true) // expect(wrapper.text()).toMatch(msg);

在expect()方法內(nèi)部,我們將要測試的結(jié)果本身放入。然后,我們使用**匹配器(matcher)**來確定結(jié)果是否是我們預(yù)期的那樣。因此,在這里,我們使用通用的 Jest 匹配器toBe() 來說明:我們期望結(jié)果為真。

在編寫測試時,首先編寫一個您知道肯定會通過(或肯定會失?。┑臏y試是有幫助的。例如,如果我們說: expect(true).toBe(true) 我們知道這一定會通過。傳遞給expect()的結(jié)果是true,我們說我們期望這個結(jié)果是toBetrue 。所以如果我們運(yùn)行這些測試,我們知道它們一定會通過,因?yàn)?true == true。

現(xiàn)在已經(jīng)有了測試的分組,可以開始編寫這些單獨(dú)的測試(individual tests)

跑所有測試用例:運(yùn)行npm run test:uni
npm run test:unit 測試文件名

我們這邊使用 npm run test:unit example.spec.js

vue-cli5腳手架搭建項(xiàng)目過程詳解 -vue組件單元測試文章來源地址http://www.zghlxwxcb.cn/news/detail-412715.html

到了這里,關(guān)于vue-cli5腳手架搭建項(xiàng)目過程詳解 -vue組件單元測試的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Vue-cli腳手架的下載

    Vue-cli腳手架的下載

    vue-cli官方提供的一個腳手架,用于快速生成一個vue的項(xiàng)目模板 預(yù)先定義好的目錄結(jié)構(gòu)及其基礎(chǔ)代碼,好比創(chuàng)建Maven項(xiàng)目時可以選擇創(chuàng)建一個骨架項(xiàng)目, 主要的功能: 統(tǒng)一的目錄結(jié)構(gòu)、本地調(diào)試、熱部署、單元測試、集成打包上線 Node.js : 下載 | Node.js 中文網(wǎng) CTRL + window 輸入

    2024年02月07日
    瀏覽(238)
  • 20230623----重返學(xué)習(xí)-vue-cli腳手架

    Vue工程化處理工具之 : @vue/cli 腳手架的本質(zhì):基于webpack實(shí)現(xiàn)項(xiàng)目的打包部署; vue/cli 安裝和使用 可選擇當(dāng)前配置項(xiàng) 文件地址在:C:Users當(dāng)前電腦用戶名.vuerc。 如:C:Usersfangc.vuerc 文件目錄 package.json 目錄: scripts:npm可執(zhí)行命令 serve命令: vue-cli-service 是Vue腳手架內(nèi)部封裝的

    2024年02月10日
    瀏覽(96)
  • Webpack項(xiàng)目學(xué)習(xí):Vue-cli(腳手架)-優(yōu)化配置 -ui庫element-plus+減小打包體積 -按需加載+自定義主題+優(yōu)化

    Webpack項(xiàng)目學(xué)習(xí):Vue-cli(腳手架)-優(yōu)化配置 -ui庫element-plus+減小打包體積 -按需加載+自定義主題+優(yōu)化

    安裝 全部引入,在入口文件main.js ?啟動:npm start ?按需引入 需要插件快速開始 | Element Plus (gitee.io) ? ? 更改默認(rèn)配置 主題 | Element Plus (gitee.io) ? ?如果有模塊沒有安裝 ,安裝一下即可 優(yōu)化 關(guān)閉性能分析 文件單獨(dú)打包 做緩存-

    2024年02月08日
    瀏覽(102)
  • mac下安裝vue cli腳手架并搭建一個簡易項(xiàng)目

    mac下安裝vue cli腳手架并搭建一個簡易項(xiàng)目

    1、確定本電腦下node和npm版本是否為項(xiàng)目所需版本。 2、下載vue腳手架 3、創(chuàng)建項(xiàng)目 如果有node,打開終端,輸入node -v和npm -v , 確保node和npm的版本,(這里可以根據(jù)自己的需求去選擇,如果對最新版本的內(nèi)容有要求,也可以選擇最新版本)如果沒有node,可以點(diǎn)擊nodejs官網(wǎng)去下載

    2024年02月15日
    瀏覽(100)
  • Vue3 腳手架搭建項(xiàng)目詳細(xì)過程

    Vue3 腳手架搭建項(xiàng)目詳細(xì)過程

    如果之前安裝了2.0的腳手架,要先卸載掉,輸入:npm uninstall vue-cli -g 進(jìn)行全局卸載 然后重新安裝:npm install @vue/cli -g 由于 git bash 來執(zhí)行命令的時候無法使用鍵盤上下鍵來進(jìn)行選項(xiàng)選擇,所以我們要使用? cmd / powershell,這里使用 cmd 1.vue create + 項(xiàng)目名稱 ?2.模板選擇,通過鍵

    2024年02月06日
    瀏覽(94)
  • vue-cli腳手架創(chuàng)建創(chuàng)建的項(xiàng)目打包后無法正常打開報(bào) Failed to load resource: net::ERR_FILE_NOT_FOUND錯誤

    vue-cli腳手架創(chuàng)建創(chuàng)建的項(xiàng)目打包后無法正常打開報(bào) Failed to load resource: net::ERR_FILE_NOT_FOUND錯誤

    親愛的小伙伴們,你們最近是否有遇到用使用最新的腳手架打包項(xiàng)目后index.html文件無法正常打開,然后控制臺報(bào)錯的情況呢,不要擔(dān)心,這個坑今天被我踩到了并且被我解決了,下邊就讓我來給大家分享一下經(jīng)驗(yàn)吧! 1.找到vue.config.js文件,進(jìn)行如下配置 即添加一行配置:

    2024年02月15日
    瀏覽(100)
  • 【每天學(xué)習(xí)一點(diǎn)點(diǎn) day04】工程化 npm create 腳手架 create-vue, vue-cli 執(zhí)行原理① - npm cli

    【每天學(xué)習(xí)一點(diǎn)點(diǎn) day04】工程化 npm create 腳手架 create-vue, vue-cli 執(zhí)行原理① - npm cli

    希望我們每個人都能找到屬于自己的花期,不急不躁,靜等風(fēng)來。 今天打算用 Docusaurus 開始搭建自己的知識庫,之前早已有此想法,遺憾的是沒有堅(jiān)持下來。 這次借助這個機(jī)會,也計(jì)劃將自己【每天學(xué)習(xí)一點(diǎn)點(diǎn)】系列整理在自己的知識庫中,方便大家查找。 在使用腳手架命

    2024年02月22日
    瀏覽(104)
  • windows系統(tǒng)安裝指定的vue/cli、node和npm;vue/cli腳手架搭建項(xiàng)目所涉及的vue/cli、node、npm依賴版本等問題

    windows系統(tǒng)安裝指定的vue/cli、node和npm;vue/cli腳手架搭建項(xiàng)目所涉及的vue/cli、node、npm依賴版本等問題

    記錄vue/cli腳手架搭建項(xiàng)目所涉及的vue/cli、node、npm依賴版本等問題 先說依賴版本: vue/cli 3.12.0 node14.21.3 npm6.14.18 注意: node和npm需要版本匹配 ,也就是下載node安裝包,就會自帶安裝npm,不可制定升級某個版本npm; 否則會導(dǎo)致 腳手架創(chuàng)建項(xiàng)目失敗 和 vue項(xiàng)目啟動失敗 和 npm下

    2024年02月15日
    瀏覽(100)
  • 從0搭建Vue3組件庫(十):如何搭建一個 Cli 腳手架

    從0搭建Vue3組件庫(十):如何搭建一個 Cli 腳手架

    本篇文章將實(shí)現(xiàn)一個名為 create-easyest 腳手架的開發(fā),只需一個命令 npm init easyest 就可以將整個組件庫開發(fā)框架拉到本地。 首先,我們在 packages 目錄下新建 cli 目錄,同執(zhí)行 pnpm init 進(jìn)行初始化,然后將包名改為 create-easyest 這里需要知道的是當(dāng)我們執(zhí)行 npm init xxx 或者 npm create xxx 的

    2024年02月08日
    瀏覽(92)
  • Mac OS安裝Vue CLI腳手架并創(chuàng)建一個基礎(chǔ)項(xiàng)目教程

    Mac OS安裝Vue CLI腳手架并創(chuàng)建一個基礎(chǔ)項(xiàng)目教程

    前后端分離 可以大大地提高開發(fā)效率,主流的解決方案為 Vue.js+SpringBoot ,這里主要介紹 Vue在Mac端的入門教程 。軟硬件環(huán)境為Macbook Air M2+macOS Vantura 13.4.1。 Vue (發(fā)音為 /vju?/,類似 view) 是一款用于 構(gòu)建用戶界面 的 JavaScript 框架,是官方提供的 基于 Webpack 的 Vue 工具鏈 。它基

    2024年02月04日
    瀏覽(306)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包