我的Node.js学习之路(四)--单元测试


Posted in Javascript onJuly 06, 2014

通过NPM安装:

npm install nodeunit -g

支持命令行,浏览器运行. 各种断言。 在node.js下模块化对于方法导出exports, 如果是对象导出module.exports,模块儿是单元测试的基础,看下面的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是一个本地全局变量文件,现在我们对以上代码使用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来调试

Javascript 相关文章推荐
jQuery数组处理方法汇总
Jun 20 Javascript
Extjs4 GridPanel的主要配置参数详细介绍
Apr 18 Javascript
js获取GridView中行数据的两种方法 分享
Jul 13 Javascript
js报$ is not a function 的问题的解决方法
Jan 20 Javascript
js左右弹性滚动对联广告代码分享
Feb 19 Javascript
理解javascript中try...catch...finally
Dec 25 Javascript
前端性能优化及技巧
May 06 Javascript
Vue单页式应用(Hash模式下)实现微信分享的实例
Jul 21 Javascript
Node.JS更改Windows注册表Regedit的方法小结
Aug 18 Javascript
利用nvm管理多个版本的node.js与npm详解
Nov 02 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
Jan 08 Javascript
原生JS实现天气预报
Jun 16 Javascript
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
Jul 06 #Javascript
我的Node.js学习之路(二)NPM模块管理
Jul 06 #Javascript
我的Node.js学习之路(一)
Jul 06 #Javascript
javascript数组操作方法小结和3个属性详细介绍
Jul 05 #Javascript
jQuery打印指定区域Html页面并自动分页
Jul 04 #Javascript
jQuery 仿百度输入标签插件附效果图
Jul 04 #Javascript
动态载入js提高网页打开速度的方法
Jul 04 #Javascript
You might like
咖啡语言
2021/03/03 咖啡文化
PHP实现百度人脸识别
2019/05/06 PHP
js验证表单第二部分
2006/11/25 Javascript
DHTML 中的绝对定位
2006/11/26 Javascript
JavaScript iframe的相互操作浅析
2009/10/14 Javascript
一些相见恨晚的 JavaScript 技巧
2010/04/25 Javascript
子窗体与父窗体传值示例js代码
2013/08/01 Javascript
原始的js代码和jquery对比体会
2013/09/10 Javascript
减少访问DOM的次数提升javascript性能
2014/02/24 Javascript
js计算任意值之间随机数的方法
2015/01/16 Javascript
AspNet中使用JQuery boxy插件的确认框
2015/05/20 Javascript
轻松学习Javascript闭包函数
2015/12/15 Javascript
dedecms页面如何获取会员状态的实例代码
2016/03/15 Javascript
jQuery处理XML文件的几种方法
2016/06/14 Javascript
微信小程序 SocketIO 实例讲解
2016/10/13 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
2017/02/17 Javascript
Bootstrap模态框(Modal)实现过渡效果
2017/03/17 Javascript
Vue 让元素抖动/摆动起来的实现代码
2018/05/31 Javascript
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
vue中如何自定义右键菜单详解
2020/12/08 Vue.js
让python json encode datetime类型
2010/12/28 Python
Python多进程通信Queue、Pipe、Value、Array实例
2014/11/21 Python
Google开源的Python格式化工具YAPF的安装和使用教程
2016/05/31 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
2018/06/11 Python
Python实现EXCEL表格的排序功能示例
2019/06/25 Python
解决python DataFrame 打印结果不换行问题
2020/04/09 Python
python nohup 实现远程运行不宕机操作
2020/04/16 Python
如何使用python写截屏小工具
2020/09/29 Python
基于Python制作一副扑克牌过程详解
2020/10/19 Python
Html5写一个简单的俄罗斯方块小游戏
2019/12/03 HTML / CSS
德国购买健身器材:AsVIVA
2017/08/09 全球购物
时尚孕妇装:Ingrid & Isabel
2019/05/08 全球购物
教师自我反思材料
2014/02/14 职场文书
劳动争议和解协议书范本
2014/11/20 职场文书
我的兄弟姐妹观后感
2015/06/15 职场文书
六年级语文教学反思
2016/03/03 职场文书