Node.js的UnitTest單元測試
在專業(yè)化的軟件開發(fā)過程中,無論什么平臺(tái)語言,現(xiàn)在都需要UnitTest單元測試. Node.js有built-in的Assert。 今天讓我們來看一下Node.js的單元測試。在這兒我們使用nodeunit,
通過NPM安裝:
npm install nodeunit -g
支持命令行,瀏覽器運(yùn)行. 各種斷言。 在node.js下模塊化對于方法導(dǎo)出exports, 如果是對象導(dǎo)出module.exports,模塊兒是單元測試的基礎(chǔ),看下面的node.js代碼:
var fs = require('fs'), global=require('./global.js'); var utils = { startWith: function(s1, s) { if (s == null || s == "" || this.length == 0 || s.length > this.length) return false; if (s1.substr(0, s.length) == s) return true; else return false; return true; }, /* Generate GUID */ getGuid: function() { var guid = ""; for (var i = 1; i <= 32; i++) { var n = Math.floor(Math.random() * 16.0).toString(16); guid += n; } return guid; }, /* add log information */ writeLog: function(log) { if(!log) return; var text = fs.readFileSync(global.logFile, "utf-8"), _newLog = text ? (text + "\r\n" + log) : log; fs.writeFile(global.logFile, _newLog, function(err){ if(err) throw err; }); } }; exports.utils=utils; |
字體: 小 中 大 | 上一篇 下一篇 | 打印 | 我要投稿
./global.js是一個(gè)本地全局變量文件,現(xiàn)在我們對以上代碼使用NodeUnit做測試的node.js代碼: var utils=new require('./utils.js'); this.TestForUtils = { 'TestgetGuid': function (test) { var guid=utils.utils.getGuid(); test.ok(!!guid, 'getGuid should not be null.'); test.done(); }, 'TestWritelog': function (test) { var flag=false; utils.utils.writeLog("test message"); flag=true; test.ok(flag,'writeLog'); test.done(); }, 'TestStartWithWords': function (test) { var name="ad_123"; test.ok(utils.utils.startWith(name, "ad_"),"startwith method should be ok"); test.done(); } }; |
test.ok也是通常我們說的斷言。對于NodeUnit的單元測試程序,也可以使用node-inspector來調(diào)試