我的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 相关文章推荐
Moment.js 不容错过的超棒Javascript日期处理类库
Apr 15 Javascript
一行代码告别document.getElementById
Jun 01 Javascript
Javascript核心读书有感之语句
Feb 11 Javascript
readonly和disabled属性的区别
Jul 26 Javascript
Bootstrap实现默认导航栏效果
Sep 21 Javascript
node+vue实现用户注册和头像上传的实例代码
Jul 20 Javascript
js实现鼠标拖拽多选功能示例
Aug 01 Javascript
vue服务端渲染的实例代码
Aug 28 Javascript
在vue中解决提示警告 for循环报错的方法
Sep 28 Javascript
在 Vue.js中优雅地使用全局事件的方法
Feb 01 Javascript
Vue.extend 编程式插入组件的实现
Nov 18 Javascript
js仿京东放大镜效果
Aug 09 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引用(&amp;)各种使用方法实例详解
2014/03/20 PHP
PHP中利用sleep函数实现定时执行功能实现代码
2016/08/25 PHP
PHP排序二叉树基本功能实现方法示例
2018/05/26 PHP
tp5.1 框架join方法用法实例分析
2020/05/26 PHP
再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)
2007/02/05 Javascript
Add Formatted Data to a Spreadsheet
2007/06/12 Javascript
caller和callee的区别介绍及演示结果
2013/03/10 Javascript
jQuery之选择组件的深入解析
2013/06/19 Javascript
jQuery循环动画与获取组件尺寸的方法
2015/02/02 Javascript
JavaScript引用类型和基本类型详解
2016/01/06 Javascript
js实现select二级联动下拉菜单
2020/04/17 Javascript
JavaScript Base64 作为文件上传的实例代码解析
2017/02/14 Javascript
简单实现jQuery轮播效果
2017/08/18 jQuery
JS实现的按钮点击颜色切换功能示例
2017/10/19 Javascript
浅谈angular4实际项目搭建总结
2017/12/01 Javascript
Vue-Router基础学习笔记(小结)
2018/10/15 Javascript
解决vue 单文件组件中样式加载问题
2019/04/24 Javascript
javascript面向对象程序设计实践常用知识点总结
2019/07/29 Javascript
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
JS数据类型判断的几种常用方法
2020/07/07 Javascript
[02:49]2014DOTA2电竞也是体育项目! 势要把荣誉带回中国!
2014/07/20 DOTA
Python批量提取PDF文件中文本的脚本
2018/03/14 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
2019/02/08 Python
python控制台实现tab补全和清屏的例子
2019/08/20 Python
python和JavaScript哪个容易上手
2020/06/23 Python
Django如何实现密码错误报错提醒
2020/09/04 Python
python打包多类型文件的操作方法
2020/09/21 Python
Java Servlet的主要功能和作用是什么
2014/02/14 面试题
汽车技术服务与营销专业在籍生自荐信
2013/09/28 职场文书
汉语专业应届生求职信
2013/10/01 职场文书
《登鹳雀楼》教学反思
2014/04/09 职场文书
华山导游词
2015/02/03 职场文书
幼儿园教师节活动总结
2015/03/23 职场文书
业务员岗位职责范本
2015/04/03 职场文书
项目战略合作意向书
2015/05/08 职场文书
2015年信息宣传工作总结
2015/05/26 职场文书