我的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 插件之仿“卓越亚马逊”首页弹出菜单效果
Dec 25 Javascript
Javascript 类型转换方法
Oct 24 Javascript
Node.js和PHP根据ip获取地理位置的方法
Mar 14 Javascript
JS中字符串trim()使用示例
May 26 Javascript
jQuery动态星级评分效果实现方法
Aug 06 Javascript
jQuery插件制作的实例教程
May 16 Javascript
JS键盘版计算器的制作方法
Dec 03 Javascript
JavaScript输入框字数实时统计更新
Jun 17 Javascript
jQuery鼠标移动图片上实现放大效果
Jun 25 jQuery
深入Node TCP模块的理解
Mar 13 Javascript
Vue-drag-resize 拖拽缩放插件的使用(简单示例)
Dec 04 Javascript
理解JavaScript中的Proxy 与 Reflection API
Sep 21 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
使用字符串函数输出整数化的PHP版本号
2006/10/09 PHP
ThinkPHP3.2.2的插件控制器功能
2015/03/05 PHP
PHP多线程编程之管道通信实例分析
2015/03/07 PHP
PHP实现在数据库百万条数据中随机获取20条记录的方法
2017/04/19 PHP
ASP.NET jQuery 实例10 动态修改hyperlink的URL值
2012/02/03 Javascript
Javascript字符串对象的常用方法简明版
2014/06/26 Javascript
angular2使用简单介绍
2016/03/01 Javascript
JavaScript位移运算符(无符号) &gt;&gt;&gt; 三个大于号 的使用方法详解
2016/03/31 Javascript
Bootstrap每天必学之按钮(Button)插件
2016/04/25 Javascript
javascript实现不同颜色Tab标签切换效果
2016/04/27 Javascript
Vue组件tree实现树形菜单
2017/04/13 Javascript
Javascript别踩白块儿(钢琴块儿)小游戏实现代码
2017/07/20 Javascript
在vue项目创建的后初始化首次使用stylus安装方法分享
2018/01/25 Javascript
解决vue组件props传值对象获取不到的问题
2019/06/06 Javascript
Vue动态修改网页标题的方法及遇到问题
2019/06/09 Javascript
如何在Vue.JS中使用图标组件
2020/08/04 Javascript
[01:09]DOTA2次级职业联赛 - ishow.HMM战队宣传片
2014/12/01 DOTA
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
Python数据预处理之数据规范化(归一化)示例
2019/01/08 Python
Django 过滤器汇总及自定义过滤器使用详解
2019/07/19 Python
Python通过2种方法输出带颜色字体
2020/03/02 Python
美国最佳选择产品网站:Best Choice Products
2019/05/27 全球购物
金士达面试非笔试
2012/03/14 面试题
电子商务专业在校生实习自我鉴定
2013/09/29 职场文书
应届护士推荐信
2013/11/16 职场文书
自我评价的写作规则
2014/01/06 职场文书
个人充满哲理的自我评价
2014/02/20 职场文书
《九色鹿》教学反思
2014/02/27 职场文书
2014社区三八妇女节活动总结
2014/03/01 职场文书
给校长的建议书
2014/03/12 职场文书
警示教育活动总结
2014/05/05 职场文书
军训口号
2014/06/13 职场文书
2014公司年终工作总结
2014/12/19 职场文书
2015大学生党员自我评价范文
2015/03/03 职场文书
终止解除劳动合同证明书
2015/06/17 职场文书
Android Studio实现带三角函数对数运算功能的高级计算器
2022/05/20 Java/Android