我的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的滚动鼠标放大缩小图片效果
Oct 27 Javascript
javascript数字格式化通用类 accounting.js使用
Aug 24 Javascript
Javascript判断对象是否相等实现代码
Mar 18 Javascript
JS判断字符串包含的方法
May 05 Javascript
跟我学习javascript的arguments对象
Nov 16 Javascript
第二篇Bootstrap起步
Jun 21 Javascript
JavaScript每天必学之基础知识
Sep 17 Javascript
JavaScript获取服务器时间的方法详解
Dec 11 Javascript
Javascript计算二维数组重复值示例代码
Dec 18 Javascript
详解ECMAScript6入门--Class对象
Apr 27 Javascript
jQuery实现移动端笔触canvas电子签名
May 21 jQuery
Vue自定义铃声提示音组件的实现
Jan 22 Vue.js
我的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中养成7个面向对象的好习惯
2010/01/28 PHP
php断点续传之如何分割合并文件
2014/03/22 PHP
PHP中绘制图像的一些函数总结
2014/11/19 PHP
php+mysql删除指定编号员工信息的方法
2015/01/14 PHP
php计算两个坐标(经度,纬度)之间距离的方法
2015/04/17 PHP
JS 操作符整理[推荐收藏]
2011/11/15 Javascript
IE浏览器中图片onload事件无效的解决方法
2014/04/29 Javascript
使用VS开发 Node.js指南
2015/01/06 Javascript
javascript中eval函数用法分析
2015/04/25 Javascript
js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问
2015/09/14 Javascript
基于JS实现textarea中获取动态剩余字数的方法
2016/05/25 Javascript
第三篇Bootstrap网格基础
2016/06/21 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
jQuery读取XML文件的方法示例
2017/02/03 Javascript
微信小程序项目实践之主页tab选项实现
2018/07/18 Javascript
js实现延迟加载的几种方法详解
2019/01/19 Javascript
layui radio单选限制下一个radio单选的实例
2019/09/03 Javascript
JavaScript如何使用插值实现图像渐变
2020/06/28 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
2020/11/16 Javascript
[43:32]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第一场
2014/05/26 DOTA
python 数据加密代码
2008/12/24 Python
Python语法快速入门指南
2015/10/12 Python
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
pandas把所有大于0的数设置为1的方法
2019/01/26 Python
Python hashlib常见摘要算法详解
2020/01/13 Python
使用pycharm和pylint检查python代码规范操作
2020/06/09 Python
市三好学生主要事迹
2014/01/28 职场文书
2014年三八妇女节活动总结
2014/03/01 职场文书
党员公开承诺事项
2014/03/25 职场文书
小学先进集体事迹材料
2014/05/31 职场文书
党的群众路线教育实践活动对照检查材料思想汇报(党员篇)
2014/09/25 职场文书
六查六看剖析材料
2014/10/06 职场文书
质量整改报告范文
2014/11/08 职场文书
2015年度服装销售工作总结
2015/03/31 职场文书
幼儿园2015年度工作总结
2015/04/01 职场文书
MySQL安装失败的原因及解决步骤
2022/06/14 MySQL