1. 程式人生 > 實用技巧 >測試框架mocha簡易教程

測試框架mocha簡易教程

測試框架mocha簡易教程

mocha 是 JavaScript 的一個單元測試框架,既可以在瀏覽器環境中執行,也可以在 node.js 環境下執行。我們只需要編寫測試用例,mocha 會將測試自動執行並給出測試結果。

1.安裝

在安裝完成 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/