Jest 學習入門

jest 學習入門

/* 2019.07.15 夏 晴*/
今天開始正式接觸Jest,從前也許聽說過,但從來沒有了解過。
今天很高興有機會可以進入Jest世界,準備邊學邊記錄學習過程,以便自己之後的回顧以及希望來看我博客的人可以更容易的學習Jest。

什麼是Jest

Jest is a delightful JavaScript Testing Framework with a focus on simplicity.

這是我引用官網的一句介紹,簡單來說Jest是一個JavaScript測試框架,我們可以在這裏配置,測試我們的代碼。

向vue項目模板中部署jest

1、安裝jest:npm install --save-dev jest @vue/test-utils
2、添加 jest 運行配置

在package.json中定義一個單元測試的腳本
在這裏插入圖片描述
3、在 Jest 中處理單文件組件
爲了告訴 Jest 如何處理 *.vue 文件,我們需要安裝和配置 vue-jest 預處理器:npm install --save-dev vue-jest

接下來在 package.json 中創建一個 jest 塊:
在這裏插入圖片描述
4、運行 npx babel-upgrade --write --install
我之前模板中原使用babel-preset-stage-0 6.24.1,但從發佈7版本之後,刪除了大量之前版本Babel’s Stage presets,所以我們需要通過該命令進行升級,解決babel版本不兼容問題。
運行結果:package.json、package-lock.json、.babelrc將會更新。
更新後請確認我們上述修改沒有變動,若有變動,修改回來。

5、修改.babelrc配置
在這裏插入圖片描述

測試:
1、測試文件
在這裏插入圖片描述
2、測試配置
在這裏插入圖片描述
3、運行
在這裏插入圖片描述

update

1、將jest配置從package.json摘出
在這裏插入圖片描述
注: test/specs 中放置測試配置; test/unit 中放置jest配置

更改package.json中的配置,並可以把原 jest 配置刪除
在這裏插入圖片描述
運行結果:
在這裏插入圖片描述
2、添加覆蓋率測試
測試含義:
- %stmts是語句覆蓋率(statement coverage):是不是每個語句都執行了?
- %Branch分支覆蓋率(branch coverage):是不是每個if代碼塊都執行了?
- %Funcs函數覆蓋率(function coverage):是不是每個函數都調用了?
- %Lines行覆蓋率(line coverage):是不是每一行都執行了?
在這裏插入圖片描述
注:
collectCoverage:開啓覆蓋率測試
collectCoverageFrom:收集測試覆蓋率信息的文件
coverageReporters:配置測試覆蓋率報告

運行結果:
在這裏插入圖片描述
3、添加快照測試
在這裏插入圖片描述
install工具:npm install --save-dev jest-serializer-vue
在這裏插入圖片描述
測試:
在這裏插入圖片描述
自動生成__snapshots__文件夾,存放生成的快照文件
在這裏插入圖片描述
生成快照後,更改我們之前的hello.vue頁面
在這裏插入圖片描述
再次測試運行,結果如下
在這裏插入圖片描述
測試報錯,因爲渲染出來的頁面和之前不符
再將hello.vue添加的那個語句註釋,在跑測試,結果如下:
在這裏插入圖片描述

這就是我這兩天學習jest,安裝測試的步驟,如果有問題,請多多指教,謝謝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章