使用 mocha 在 Node.js 和瀏覽器環境中單元測試
Mocha 是一套 JavaScript 的測試框架 (Test Framework),有 Node.js 和瀏覽器版本,可分別測試不同環境。
假設我們開發了一個 JavaScript 套件,我們希望可以在 Node.js 和不同瀏覽器上測試,可以用以下方法來達成。
輸出至 module 或是 window
在自己開發的 JavaScript 中,最後將程式依據環境輸出 module 或是全域變數,以下皆以 js-md5 為範例
1 | ;(function (root, undefined) { |
建立測試網頁
建立測試網頁,例如 tests/index.html,內容需包含以下項目(要注意順序):
1 | <!-- mocha套件 start --> |
實作測試內容
在 test.js 中實作測試內容,依照 mocha 的框架寫法去撰寫,例如:
1 | describe('less than 64 bytes', function () { |
完成後就可以開網頁看測試結果
安裝 node.js 版本的 mocha 與相關套件
我將 mocha 安裝於全域,以後不需重複安裝
1 | sudo npm install mocha -g |
建立 node.js 專用測試檔
例如建立 node-test.js,加入以下項目
1 | md5 = require('../src/md5.js'); |
將 test.js 中需要用到的套件在 node-test.js 檔案中先行載入到全域變數,最後再載入 test.js 執行相同的測試項目。
之後就可以執行以下指令進行測試
1 | mocha node-test.js |
或者在package.json中加入
1 | "scripts": { |
就可以執行以下指令代替
1 | npm test |
延伸閱讀
使用 jscoverage 計算 Node.js 程式覆蓋率
在 Github 上使用 Travis CI 進行持續整合 - Node.js
在 Github 上使用 Coveralls 顯示程式覆蓋率 - Node.js
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 小殘的程式光廊!
Comment