我的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 相关文章推荐
html5+javascript制作简易画板附图
Apr 25 Javascript
JS获取图片高度宽度的方法分享
Apr 17 Javascript
JQuery中attr方法和removeAttr方法用法实例
May 18 Javascript
浅析AngularJS Filter用法
Dec 28 Javascript
Jquery和BigFileUpload实现大文件上传及进度条显示
Jun 27 Javascript
vue-cli+webpack项目 修改项目名称的方法
Feb 28 Javascript
利用js实现前后台传送Json的示例代码
Mar 29 Javascript
常用的 JS 排序算法 整理版
Apr 05 Javascript
详解关于vue-area-linkage走过的坑
Jun 27 Javascript
elementUI中Table表格问题的解决方法
Dec 04 Javascript
JavaScript中关于base64的一些事
May 06 Javascript
详解js中let与var声明变量的区别
Apr 05 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
丧钟首部独立剧集《丧钟:骑士与龙》北美正式开播,场面血腥
2020/04/09 欧美动漫
我的php学习笔记(毕业设计)
2012/02/21 PHP
Fine Uploader文件上传组件应用介绍
2013/01/06 PHP
PHP中模拟处理HTTP PUT请求的例子
2014/07/22 PHP
php将一维数组转换为每3个连续值组成的二维数组
2016/05/06 PHP
thinkPHP5框架实现基于ajax的分页功能示例
2018/06/12 PHP
自己的js工具 Event封装
2009/08/21 Javascript
11款基于Javascript的文件管理器
2009/10/25 Javascript
使用jquery读取html5 localstorage的值的方法
2013/01/04 Javascript
非常好用的JsonToString 方法 简单实例
2013/07/18 Javascript
js判断IE浏览器版本过低示例代码
2013/11/22 Javascript
JavaScript限定图片显示大小的方法
2015/03/11 Javascript
jQuery对指定元素中指定字符串进行替换的方法
2015/03/17 Javascript
nodejs简单实现中英文翻译
2015/05/04 NodeJs
jQuery双向列表选择器select版
2016/11/01 Javascript
Angular JS数据的双向绑定详解及实例
2016/12/31 Javascript
JQ图片文件上传之前预览功能的简单实例(分享)
2017/11/12 Javascript
微信小程序实现通过双向滑动缩放图片大小的方法
2018/12/30 Javascript
vuex实现及简略解析(小结)
2019/03/01 Javascript
nodejs dgram模块广播+组播的实现示例
2019/11/04 NodeJs
python实现提取百度搜索结果的方法
2015/05/19 Python
fastcgi文件读取漏洞之python扫描脚本
2017/04/23 Python
Python中如何优雅的合并两个字典(dict)方法示例
2017/08/09 Python
Python中pow()和math.pow()函数用法示例
2018/02/11 Python
python画一个玫瑰和一个爱心
2020/08/18 Python
Python基于Tkinter模块实现的弹球小游戏
2018/12/27 Python
Python shutil模块用法实例分析
2019/10/02 Python
澳大利亚家具和家居用品购物网站:Zanui
2018/12/29 全球购物
ZINVO手表官网:男士和女士手表
2019/03/10 全球购物
工程地质勘察专业大学生求职信
2013/10/13 职场文书
中学实习教师自我鉴定
2013/12/12 职场文书
餐饮业会计岗位职责
2013/12/19 职场文书
搞笑婚礼主持词
2014/03/13 职场文书
党员应该树立反腐倡廉的坚定意识思想汇报
2014/09/12 职场文书
分析Java中Map的遍历性能问题
2021/06/26 Java/Android
JavaScript实现外溢动态爱心的效果的示例代码
2022/03/21 Javascript