我的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实现网页倒计时、网站已运行时间功能的代码3例
Apr 14 Javascript
谈一谈javascript闭包
Jan 28 Javascript
xtemplate node.js 的使用方法实例解析
Aug 22 Javascript
聊一聊jQuery插件uploadify使用方法
Aug 24 Javascript
Node.js如何响应Ajax的POST请求并且保存为JSON文件详解
Mar 10 Javascript
Vue.js 表单控件操作小结
Mar 29 Javascript
axios封装,使用拦截器统一处理接口,超详细的教程(推荐)
May 02 Javascript
ES6 Symbol数据类型的应用实例分析
Jun 26 Javascript
微信小程序实现多行文字超出部分省略号显示功能
Oct 23 Javascript
JavaScript实现图片合成下载的示例
Nov 19 Javascript
vue使用echarts图表自适应的几种解决方案
Dec 04 Vue.js
node.js通过Sequelize 连接MySQL的方法
Dec 28 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
牡丹941资料
2021/03/01 无线电
php 对输入信息的进行安全过滤的函数代码
2012/06/29 PHP
destoon找回管理员密码的方法
2014/06/21 PHP
自己写的兼容低于PHP 5.5版本的array_column()函数
2014/10/24 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
大家须知简单的php性能优化注意点
2016/01/04 PHP
巧用局部变量提升javascript性能
2014/02/24 Javascript
js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法
2015/04/25 Javascript
javascript常用函数(1)
2015/11/04 Javascript
AngularJs Dependency Injection(DI,依赖注入)
2016/09/02 Javascript
jQuery中Chosen三级联动功能实例代码
2017/03/07 Javascript
JavaScript函数柯里化原理与用法分析
2017/03/31 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
React项目动态设置title标题的方法示例
2018/09/26 Javascript
浅谈Vuex注入Vue生命周期的过程
2019/05/20 Javascript
p5.js临摹旋转爱心
2019/10/23 Javascript
Element Breadcrumb 面包屑的使用方法
2020/07/26 Javascript
微信小程序wx.getUserInfo授权获取用户信息(头像、昵称)的实现
2020/08/19 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
2020/09/02 Javascript
[23:21]Ti4 冒泡赛第二轮DK vs C9 2
2014/07/14 DOTA
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
使用pandas的DataFrame的plot方法绘制图像的实例
2018/05/24 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
2018/06/22 Python
python 生成图形验证码的方法示例
2018/11/11 Python
python实现异常信息堆栈输出到日志文件
2019/12/26 Python
python要安装在哪个盘
2020/06/15 Python
Python3获取cookie常用三种方案
2020/10/05 Python
GNC健安喜官方海外旗舰店:美国著名保健品牌
2017/01/04 全球购物
解释i节点在文件系统中的作用
2013/11/26 面试题
如何通过 CSS 写出火焰效果
2021/03/24 HTML / CSS
机械设计制造及其自动化专业求职信
2014/06/17 职场文书
群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
2015年质检工作总结
2015/05/04 职场文书
一篇文章带你学习Mybatis-Plus(新手入门)
2021/08/02 Java/Android
一条慢SQL语句引发的改造之路
2022/03/16 MySQL