大家好,我是 Kagol。
作為一名前端,在做業務開發的過程中,你是否曾經:
如果你中了以上任何一條,說明你現在缺乏安全感,你擔心、你害怕、你不敢、你戰戰兢兢、你如履薄冰。
每天寫程式碼都處在擔驚受怕當中,程式設計師的尊嚴何在!
程式設計師的安全感要自己給自己,是時候改變現狀了!
我們有很多方法可以給自己安全感,比如:
本文主要給大家介紹如何在 Vue 專案中編寫單元測試。
我們的單元測試環境基於 vitest
+ @vue/test-utils
。
前提:你需要有一個 Vue 專案,沒有的話可以參考 Vite 官網進行建立。
第一步,在你的 Vue 專案中安裝必要的依賴包。
npm i -D vitest @vue/test-utils happy-dom @vitest/coverage-v8
在 vite.config.ts
檔案中增加以下設定。
import { defineConfig } from 'vitest/config'
import vue from '@vitejs/plugin-vue'
export default defineConfig({
plugins: [vue()],
// 新增
test: {
environment: 'happy-dom'
}
})
在 package.json
檔案中增加相應的指令碼命令
"scripts": {
"dev": "vite",
"build": "vue-tsc && vite build",
"preview": "vite preview",
// 新增
"test": "vitest"
},
我們嘗試執行以下命令:
npm test
會發現控制檯會列印以下紀錄檔:
$ npm test
> [email protected] test
> vitest
DEV v0.33.0 /vue3-vite-demo
include: **/*.{test,spec}.?(c|m)[jt]s?(x)
exclude: **/node_modules/**, **/dist/**, **/cypress/**, **/.{idea,git,cache,output,temp}/**, **/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build}.config.*
watch exclude: **/node_modules/**, **/dist/**
No test files found, exiting with code 1
意思是:沒有找到單元測試檔案。
除此之外,我們還能獲取一些額外的資訊,比如 include 表明了單元測試檔案的命令格式:
**/*.{test,spec}.?(c|m)[jt]s?(x)
我們在 src/components
目錄下建立一個 HelloWorld.spec.ts
檔案。
import { mount } from '@vue/test-utils'
import { describe, it, expect } from 'vitest'
import HelloWorld from './HelloWorld.vue'
describe('測試 HelloWorld 元件', () => {
it('測試基本功能', async () => {
const wrapper = mount(HelloWorld)
expect(wrapper.exists()).toBeTruthy()
})
})
再次執行 npm test
命令
$ npm test
✓ src/components/HelloWorld.spec.ts (1)
✓ 測試 HelloWorld 元件 (1)
✓ 測試基本功能
Test Files 1 passed (1)
Tests 1 passed (1)
Start at 23:34:49
Duration 126ms
會提示:有一個單元測試用例通過。
這樣我們的 Vue 專案單元測試環境就搭建成功,並且完成了第一個 Vue 單元測試用例