我的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 相关文章推荐
jValidate 基于jQuery的表单验证插件
Dec 12 Javascript
JavaScript类库D
Oct 24 Javascript
基于jquery的图片的切换(以数字的形式)
Feb 14 Javascript
基于MVC3方式实现下拉列表联动(JQuery)
Sep 02 Javascript
jquery将一个表单序列化为一个对象的方法
Dec 02 Javascript
js replace替换所有匹配的字符串
Feb 13 Javascript
JavaScript中的getTime()方法使用详解
Jun 10 Javascript
jfinal与bootstrap的登录跳转实战演习
Sep 22 Javascript
JavaScript encodeURI 和encodeURIComponent
Dec 04 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
Jan 05 Javascript
vue使用watch 观察路由变化,重新获取内容
Mar 08 Javascript
JS前端监控采集用户行为的N种姿势
Jul 23 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
基于mysql的论坛(1)
2006/10/09 PHP
php ios推送(代码)
2013/07/01 PHP
PHP简单实现HTTP和HTTPS跨域共享session解决办法
2015/05/27 PHP
PHP XML Expat解析器知识点总结
2019/02/15 PHP
PHP7匿名类的用法示例
2019/04/05 PHP
Javascript----文件操作
2007/01/18 Javascript
jquery 插件 人性化的消息显示
2008/01/21 Javascript
JavaScript 异步调用框架 (Part 6 - 实例 &amp; 模式)
2009/08/04 Javascript
循环 vs 递归浅谈
2013/02/28 Javascript
关于jquery input textare 事件绑定及用法学习
2013/04/03 Javascript
js的alert弹出框出现乱码解决方案
2013/09/02 Javascript
基于jquery实现的仿优酷图片轮播特效代码
2016/01/13 Javascript
Ajax的概述与实现过程
2016/11/18 Javascript
原生js简单实现放大镜特效
2017/05/16 Javascript
angular directive的简单使用总结
2017/05/24 Javascript
微信小程序movable view移动图片和双指缩放实例代码
2017/08/08 Javascript
Angular.js实现获取验证码倒计时60秒按钮的简单方法
2017/10/18 Javascript
js作用域和作用域链及预解析
2019/04/11 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
JavaScript运行机制实例分析
2020/04/11 Javascript
node.js +mongdb实现登录功能
2020/06/18 Javascript
Python中__name__的使用实例
2015/04/14 Python
python中split方法用法分析
2015/04/17 Python
用Python的Tornado框架结合memcached页面改善博客性能
2015/04/24 Python
python实现淘宝秒杀脚本
2020/06/23 Python
Python3字符串encode与decode的讲解
2019/04/02 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
2019/07/14 Python
Python图像处理二值化方法实例汇总
2020/07/24 Python
利用Python发送邮件或发带附件的邮件
2020/11/12 Python
五种Python转义表示法
2020/11/27 Python
html5跨域通讯之postMessage的用法总结
2013/11/07 HTML / CSS
股东协议书范本
2014/04/14 职场文书
竞选班干部演讲稿400字
2014/08/20 职场文书
教师党员个人总结
2015/02/10 职场文书
2015年四年级班主任工作总结
2015/10/22 职场文书
HTML+CSS 实现顶部导航栏菜单制作
2021/06/03 HTML / CSS