1. 測試的差異
- Unit 測試成本最低、速度最快
- UI測試成本最高、速度最慢
- E2E test 看起來跟selumium 滿像的,它還有儲檔截圖的概念,屬於使用UI的方式進行測試
puppeteer
這個套件 是以UI的方式進行測試,要寫DOM元素來模擬填寫資料
1.1. 如何導入UNIT TEST
- 情境描述
- 測試的目標為何
- 導入要測試的函式
- 測試的期望是什麼
1.2. 安裝JEST
npm init ,建立一個空的package 管理
VSCode 套件,這個套件可以即時存檔的時候,在function 前面立即有綠勾或紅叉,告訴你這個測試結果是否通過。
1.3. JEST 測試開發
1.3.1. 測試流程
- 定義一段函式並匯出
- 定義.test測試檔案,並匯入上方函式
- 驗證結果
筆記:使用node js 方式把 js export 出去
筆記:再使用require 方式引入
1.3.2. JEST IO Docs
1.3.3. 相關測試函式
1.3.3.1. 驗證物件內容是否正確
物件本是是參考位置的概念,所以如果要驗證物件的內容是否相同可以使用toEqual
方法,這個屬於深複製方式進行每一個key、value驗證
1.3.3.2. 陣列是否包含特定值
1.3.3.3. 數值必須大於300
1.3.3.4. 正規表達式email 驗證
1.3.3.5. describe 是一個群組的概念
我們可以看到使用npm run test 有群組的訊息分類
1.3.3.6. 非同步測試
以下兩個測試都是一樣的結果,使用expct.assertions(1)
,這個是一個斷言的東西,告訴程式非同步的等待會有幾個
使用await
代表要等到拿到資料之後,才會往下執行57
行程式