前言
基本上Unit test的好處多多, 我們可以專注在新開發的功能上測試, 而不用浪費時間測到一些不相關的部分, 除此之外, 將來在除錯時也容易找到問題目前有許多套件可以輔助我們做Unit test, 今天著重在如何使用mocha, chai
建立Test資料夾, 檔案結構如下
/node_modures
app.js
package.json
/test
下載mocha, chai
$ npm install mocha --save-dev
$ npm install chai --save-dev
修改package.json
加入以下設定
"scripts": {
"test": "mocha --exit"
},
--exit 這個flag的作用是, 讓mocha執行完測試後可以自動結束, 這個flag可加也可以不加, 不加的話有可能在跑CICD的Pipeline時會被mocha給卡住
當我們使用npm test 的時候, 就會把 mocha 模組叫起來做單元測試
改完之後的package.json如下:
{
"name": "my-simple-test",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"test": "mocha --exit"
},
...
test.js
在/test資料夾下建立test.js, 此時檔案架構如下/node_modures
app.js
package.json
/test
test.js
我們可以想要測的部分寫在 it 的 callback function裡, 然後再使用assert去比對結果是否符合預期開始測試
$ npm run test
================ 分隔線 ================ 分隔線 ========================
補充:
如何測試指定的function
如果不想要跑完全部的測試, 只想針對部分的function, 我們可以用$ npm test -- -g "check if function a() return true"
mocha 會去找測試描述中有符合"check if function a() return true"字串的項目執行測試
VS Code 中斷點除錯
將以下的內容添加到launch.js 中
{
"name": "mocha",
"type": "node",
"request": "launch",
"program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
"stopOnEntry": false,
"args": ["--no-timeouts", "--colors"], //you can specify paths to specific tests here
"cwd": "${workspaceRoot}",
"runtimeExecutable": null
}
接下來, 按F5之後程式就會停在我們先前設的中斷點上 ...
留言
張貼留言