我的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 相关文章推荐
不提示直接关闭网页窗口的JS示例代码
Dec 17 Javascript
jQuery 顶部导航跟随滚动条滚动固定浮动在顶部
Jun 06 Javascript
javascript实现控制的多级下拉菜单
Jul 05 Javascript
js实现点击向下展开的下拉菜单效果代码
Sep 01 Javascript
Vue.js自定义指令的用法与实例解析
Jan 18 Javascript
基于JS实现bookstore静态页面的实例代码
Feb 22 Javascript
微信小程序商城项目之侧栏分类效果(1)
Apr 17 Javascript
Node.JS利用PhantomJs抓取网页入门教程
May 19 Javascript
jQuery+ajax实现动态添加表格tr td功能示例
Apr 23 jQuery
javascript实现前端成语点击验证
Jun 24 Javascript
在vue中封装的弹窗组件使用队列模式实现方法
Jul 23 Javascript
解决vuex改变了state的值,但是页面没有更新的问题
Nov 12 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下清空字符串中的HTML标签的代码
2010/09/06 PHP
php cURL和Rolling cURL并发方式比较
2013/10/30 PHP
php广告加载类用法实例
2014/09/23 PHP
PHP中$this和$that指针使用实例
2015/01/06 PHP
php socket通信简单实现
2016/11/18 PHP
详解PHP用substr函数截取字符串中的某部分
2016/12/03 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
用js判断用户浏览器是否是XP SP2的IE6
2007/03/08 Javascript
javascript for循环设法提高性能
2010/02/24 Javascript
javascript 类型判断代码分析
2010/03/28 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
2012/07/31 Javascript
JavaScript中的style.cssText使用教程
2014/11/06 Javascript
jQuery的观察者模式详解
2014/12/22 Javascript
基于JavaScript怎么实现让歌词滚动播放
2015/11/03 Javascript
jquery显示隐藏元素的实现代码
2016/05/19 Javascript
form表单转Json提交的方法(推荐)
2016/09/23 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
2017/01/09 Javascript
BootStrap注意事项小结(五)表单
2017/03/10 Javascript
JavaScript脚本语言是什么_动力节点Java学院整理
2017/06/26 Javascript
微信小程序 转发功能的实现
2017/08/04 Javascript
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
Python简单调用MySQL存储过程并获得返回值的方法
2015/07/20 Python
Python基于opencv实现的简单画板功能示例
2019/03/04 Python
python实现七段数码管和倒计时效果
2019/11/23 Python
Python实现大数据收集至excel的思路详解
2020/01/03 Python
IE下实现类似CSS3 text-shadow文字阴影的几种方法
2011/05/11 HTML / CSS
售后服务承诺书模板
2014/05/21 职场文书
法学求职信
2014/06/22 职场文书
2014年企业党支部工作总结
2014/12/04 职场文书
2015元旦联欢晚会结束语
2014/12/14 职场文书
员工加薪申请报告
2015/05/15 职场文书
vue3如何优雅的实现移动端登录注册模块
2021/03/29 Vue.js
MySQL非空约束(not null)案例讲解
2021/08/23 MySQL
vue实现列表拖拽排序的示例代码
2022/04/08 Vue.js
详解ZABBIX监控ESXI主机的问题
2022/06/21 Servers