我的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中 关于undefined和null的区别介绍
Apr 16 Javascript
jQuery实现返回顶部功能适合不支持js的浏览器
Aug 19 Javascript
jquery利用命名空间移除绑定事件的方法
Mar 11 Javascript
JavaScript中的toLocaleLowerCase()方法使用详解
Jun 06 Javascript
JavaScript深度复制(deep clone)的实现方法
Feb 19 Javascript
使用javascript插入样式
Mar 14 Javascript
如何用JavaScript实现动态修改CSS样式表
May 20 Javascript
javascript中的面向对象
Mar 30 Javascript
vuejs父子组件之间数据交互详解
Aug 09 Javascript
seajs中模块依赖的加载处理实例分析
Oct 10 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
Aug 03 Javascript
layui 富文本赋值,取值,取纯文本值的实例
Sep 18 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高清晰度无损图片压缩功能的实现代码
2018/12/09 PHP
JavaScript 编程引入命名空间的方法
2007/06/29 Javascript
js模仿html5 placeholder适应于不支持的浏览器
2013/01/13 Javascript
Javascript实现滑块滑动改变值的实现代码
2013/04/12 Javascript
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
javascript动态生成树形菜单的方法
2015/11/14 Javascript
详解AngularJs ui-router 路由的简单介绍
2017/04/26 Javascript
在vue中使用Autoprefixed的方法
2018/07/27 Javascript
layui复选框的全选与取消实现方法
2019/09/02 Javascript
微信小程序 scroll-view的使用案例代码详解
2020/06/11 Javascript
解决Vue 移动端点击出现300毫秒延迟的问题
2020/07/21 Javascript
element-ui和vue表单(对话框)验证提示语(残留)清除操作
2020/09/11 Javascript
Python实现子类调用父类的方法
2014/11/10 Python
python实现在sqlite动态创建表的方法
2015/05/08 Python
Python3中bytes类型转换为str类型
2018/09/27 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
2019/07/28 Python
基于django ManyToMany 使用的注意事项详解
2019/08/09 Python
python 创建一维的0向量实例
2019/12/02 Python
pytorch实现onehot编码转为普通label标签
2020/01/02 Python
python的json包位置及用法总结
2020/06/21 Python
Python偏函数实现原理及应用
2020/11/20 Python
python中K-means算法基础知识点
2021/01/25 Python
钉钉企业内部H5微应用开发详解
2020/05/12 HTML / CSS
萌新HTML5 入门指南(二)
2020/11/09 HTML / CSS
Paul’s Boutique官网:英国时尚手袋品牌
2018/03/31 全球购物
PHP如何删除一个Cookie值
2012/11/15 面试题
办公室文秘自我鉴定
2013/09/21 职场文书
洗发露广告词
2014/03/14 职场文书
工作收入证明模板
2014/10/10 职场文书
社区党员群众路线教育实践活动心得体会
2014/11/03 职场文书
五年级小学生评语
2014/12/26 职场文书
万能检讨书
2015/01/27 职场文书
交通事故和解协议书
2015/01/27 职场文书
教你使用vscode 搭建react-native开发环境
2021/07/07 Javascript
java设计模式--七大原则详解
2021/07/21 Java/Android
Spring Data JPA框架持久化存储数据到数据库
2022/04/28 Java/Android