整理這些技術筆記真的很花時間,如果你願意 關閉 Adblock 支持我,我會把這份感謝轉換成更多「踩坑轉避坑」的內容給你!ヽ(・∀・)ノ
(22)被迫吃芒果的前端工程師 - Mocha - 入門
前言
那麼前面章節算是快速認識一下 Mocha 並且安裝 Mocha,但沒有真的開始介紹語法,因此這邊將會來介紹一些常見的語法。
Mocha 入門
首先我們先在 Express 專案底下建立一個 test 資料夾,並且建立一個 test_helper.js 的檔案,裡面基本上不用太多東西,因為我們要先認識一些基礎的 Mocha,其中這也是我們後續會需要使用的語法,首先是以下
beforebeforeEachdescribeitxit
以及 assert,但這邊要注意 assert 是 Node.js 本身所提供的斷言庫,主要原因是 Mocha 本身並沒有斷言庫,因此斷言庫就會使用 Node.js 本身的。
那麼在開始之前請你先將 package.json 打開來,然後新增一個 test 指令以下
1 | |
新增完畢之後,我們回到 test_helper.js 中就可以準備開始了。
before
before 的意思是「準備測試執行之前」先執行裡面的內容,所以基本語法是這樣撰寫
1 | |
反過另來一個則是 after,但 after 則是全部測試完畢後才會執行裡面內容。
beforeEach
beforeEach 是「每次執行測試之前」,都先執行裡面的內容一次,這邊要注意與 before 不同,因為 before 只會執行一次,而 beforeEach 則是每一個測試執行時,都會先跑過一次,撰寫方式也與 before 相同
1 | |
另一個則是 afterEach,也就是每個測試完成之後就會執行裡面內容。
describe 與 it
describe 則是描述這個測試區塊在做什麼,而這個是一個群組概念,通常裡面會有很多測試在裡面,因此會搭配 it 居多,而 it 就是預計要測試的內容,撰寫方式如下
1 | |
上面是 describe 與 it 的基本用法,而 xit 則是一個很特別的測試方式,簡單來講就是當如果你有一個寫好的測試,但是你暫時不想要跑這一個測試時,可以使用 xit 忽略該測試,你可能會想說為什麼不乾脆刪除就好了?
主要原因是,有時候我們只是要暫時忽略該測試而不是真的要刪除,因為裡面可能包含了之前的邏輯在裡面,當你刪除的話,那麼我們之後要回頭尋找就會非常困難,因此就會建議使用 xit 忽略並保留當初撰寫的測試邏輯。
那這邊出現了一個疑惑,我們要如何驗證結果?這邊就要使用剛剛前面所講的 assert,意旨斷言結果是不是真的,例如:
1 | |
這樣子撰寫後你就可以透過 npm run test 跑一次看結果,而這邊我也提供完整的範例確保你執行是正確的
1 | |
執行完畢之後你就可以看到一個綠色打勾,代表你測試成功

基本上你只要掌握以上技巧,你就至少掌握了 6~7 成的測試基礎,剩下的章節我們就會從測試的角度去撰寫 Mongoose 唷。
整理這些技術筆記真的很花時間,如果你願意 關閉 Adblock 支持我,我會把這份感謝轉換成更多「踩坑轉避坑」的內容給你!ヽ(・∀・)ノ