Install via NPM:
npm install nodeunit -g
Supports command line, browser runs. Various assertions. Modularly export exports for method in node.js. If you export module.exports for object, the module is the basis for unit testing. See the following node.js code:
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;elsereturn 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 is a local global variable file. Now we use NodeUnit for testing node.js code for the above code:
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 is also the assertion we usually say. For NodeUnit unit test programs, you can also use node-inspector to debug