我的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 相关文章推荐
JavaScript下利用fso判断文件是否存在的代码
Dec 11 Javascript
JavaScript词法作用域与调用对象深入理解
Nov 29 Javascript
jQuery之排序组件的深入解析
Jun 19 Javascript
Ajax异步提交表单数据的说明及方法实例
Jun 22 Javascript
js onload处理html页面加载之后的事件
Oct 30 Javascript
基于jQuery实现最基本的淡入淡出效果实例
Feb 02 Javascript
js给selected添加options的方法
May 06 Javascript
JS制作类似选项卡切换的年历
Dec 03 Javascript
jQuery简单绑定单个事件的方法示例
Jun 10 jQuery
Vue 中的受控与非受控组件的实现
Dec 17 Javascript
layui表格内容溢出的解决方法
Sep 06 Javascript
通过Kettle自定义jar包供javascript使用
Jan 29 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插入排序实现代码
2013/04/04 PHP
PHP生成不同颜色、不同大小的tag标签函数
2013/09/23 PHP
PHP5.3安装Zend Guard Loader图文教程
2014/09/29 PHP
简单的php+mysql聊天室实现方法(附源码)
2016/01/05 PHP
php metaphone()函数的定义和用法
2016/05/15 PHP
centos+php+coreseek+sphinx+mysql之一coreseek安装篇
2016/10/25 PHP
php实现的简单数据库操作Model类
2016/11/16 PHP
javascript取消文本选定的实现代码
2010/11/14 Javascript
js中巧用cssText属性批量操作样式
2011/03/13 Javascript
鼠标移动到图片名上,显示图片的简单实例
2013/07/14 Javascript
JavaScript获取页面中表单(form)数量的方法
2015/04/03 Javascript
基于jquery实现页面滚动到底自动加载数据的功能
2015/12/19 Javascript
javascript从作用域链谈闭包
2020/07/29 Javascript
Angular.js通过自定义指令directive实现滑块滑动效果
2017/10/13 Javascript
NodeJs项目中关闭ESLint的方法
2018/08/09 NodeJs
详解微信小程序实现仿微信聊天界面(各种细节处理)
2019/02/17 Javascript
小程序:授权、登录、session_key、unionId的详解
2019/05/15 Javascript
微信小程序登录态和检验注册过没的app.js写法
2019/05/22 Javascript
基于jQuery实现可编辑的表格
2019/12/11 jQuery
python中hashlib模块用法示例
2017/10/30 Python
Python基于百度云文字识别API
2018/12/13 Python
处理python中多线程与多进程中的数据共享问题
2019/07/28 Python
python如何使用Redis构建分布式锁
2020/01/16 Python
python爬虫使用requests发送post请求示例详解
2020/08/05 Python
实例讲解使用HTML5 Canvas绘制阴影效果的方法
2016/03/25 HTML / CSS
给排水工程师岗位职责
2013/11/21 职场文书
班组长工作职责
2013/12/25 职场文书
教师研修随笔感言
2014/01/23 职场文书
车队司机自我鉴定
2014/03/02 职场文书
《悯农》教学反思
2014/04/28 职场文书
2014年秋季新学期寄语
2014/08/02 职场文书
课外访万家心得体会
2014/09/03 职场文书
乡镇务虚会发言材料
2014/10/20 职场文书
2015社区健康教育工作总结
2015/05/20 职场文书
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android
python 闭包函数详细介绍
2022/04/19 Python