測試框架mocha簡易教程
測試框架mocha簡易教程
mocha 是 JavaScript 的一個單元測試框架,既可以在瀏覽器環境中執行,也可以在 node.js 環境下執行。我們只需要編寫測試用例,mocha 會將測試自動執行並給出測試結果。
1.安裝
-
安裝 nodejs
-
安裝 npm 模組
在安裝完成 nodejs 與 npm 之後,接著安裝 mocha 模組:
$ install --global mocha # 在全域性環境下安裝mocha
實際上可以不在全域性環境下安裝 mocha ,但為了方便後期單元測試,全域性環境會比較方便。
以下均以測試 add.js 檔案作為例子說明
//add.js
function add(x, y) {
return x + y;
}
2.搭建專案目錄
為了方便管理測試檔案,簡單的搭建一個專案目錄結構。簡單來說,就是把測試檔案和待測試檔案分門別類一下,然後把測試檔案統一命名為 ’ 測試檔名 ‘.test.js ,有利於後期測試人員的測試操作。其專案目錄如下:
+- scr file
-- add.js
+- test file
-- add.test.js
-- package.json
3.測試指令碼編寫
//add.test.js var add = require("../src/add"); // 引入 add 模組 注意路徑為相對路徑 var assert = require("assert"); // 引入內建的 assert 模組 describe("add函式的測試", function() { it("1加1等於2", function(){ assert.equal(2, add(1, 1));//使用 assert 模組中的 equal() 進行測試,也可使用其他函式 }); });
測試指令碼說明:
測試指令碼可以包括一個或多個describe
塊,每個describe
塊可以包括一個或多個it
塊。
describe
塊稱為"測試套件"(test suite),表示一組相關的測試。它是一個函式,第一個引數是測試套件的名稱("add函式的測試"),第二個引數是一個實際執行的函式。describe
是可以任意巢狀的。
it
塊稱為"測試用例"(test case),表示一個單獨的測試,是測試的最小單位。它也是一個函式,第一個引數是測試用例的名稱("1 add 1 應該等於 2"),第二個引數是一個實際執行的函式。
我們可以同時編寫多個測試來測試不同的資料輸入,並使用 assert
判斷輸出是否和我們預期結果相等。
4.測試指令碼的執行
使用命令 mocha add.test.js
就可以得到測試指令碼的測試效果了,如下:
$ mocha add.test.js
add函式的測試
✓ 1 add 1 應該等於 2
1 passing (8ms)
執行結果說明:該測試指令碼通過測試,共一個測試用例通過,使用 8ms。
當然你也可以一次性測試多個測試指令碼,即在 mocha f1.test.js f2.test.js ...
mocha 模組會自動執行該目錄下的測試指令碼,這也是為什麼要把測試指令碼放在同一個資料夾下的原因之一。
我們還可以生成 html 和 json 檔案,提高測試結果的可讀性。
$ npm install --save-dev mochawesome
$ mocha add.test.js --reporter mochawesome
如下圖(圖片轉載於 http://www.ruanyifeng.com/blog/2015/12/a-mocha-tutorial-of-examples.html):
5.補充說明
mocha 的功能不僅僅止步於上述所說的簡單功能,他其實還可以使非同步測試變得簡單有趣。Mocha測試連續執行,允許靈活和準確的報告,同時將未捕獲的異常對映到正確的測試用例。
具體可參考 mocha 中文文件:https://mochajs.cn/