我的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自定义函数判断网站访问类型是PC还是移动终端
Jan 10 Javascript
在JavaScript中操作时间之getYear()方法的使用教程
Jun 11 Javascript
详解JavaScript数组和字符串中去除重复值的方法
Mar 07 Javascript
基于 Node.js 实现前后端分离
Apr 23 Javascript
JavaScript性能优化总结之加载与执行
Aug 11 Javascript
使用微信内嵌H5网页解决JS倒计时失效问题
Jan 13 Javascript
jQuery居中元素scrollleft计算方法示例
Jan 16 Javascript
最全的JavaScript开发工具列表 总有一款适合你
Jun 29 Javascript
React入门教程之Hello World以及环境搭建详解
Jul 11 Javascript
js基于FileSaver.js 浏览器导出Excel文件的示例
Aug 15 Javascript
JavaScript实现的联动菜单特效示例
Jul 08 Javascript
vue内置组件component--通过is属性动态渲染组件操作
Jul 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
程序员编程十条戒律
2009/07/09 PHP
php skymvc 一款轻量、简单的php
2011/06/28 PHP
PHP解决URL中文GBK乱码问题的两种方法
2014/06/03 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
2016/01/03 PHP
PHP对象相关知识总结
2017/04/09 PHP
PHP小白必须要知道的php基础知识(超实用)
2017/10/10 PHP
Laravel使用RabbitMQ的方法示例
2019/06/18 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
通过隐藏option实现select的联动效果
2009/11/10 Javascript
利用webqq协议使用python登录qq发消息源码参考
2013/04/08 Javascript
JavaScript实现关键字高亮功能
2014/11/12 Javascript
jquery实现鼠标滑过小图时显示大图的方法
2015/01/14 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
JQuery fileupload插件实现文件上传功能
2016/03/18 Javascript
Bootstrap Navbar Component实现响应式导航
2016/10/08 Javascript
ES6中Generator与异步操作实例分析
2017/03/31 Javascript
javascript性能优化之分时函数的介绍
2018/03/28 Javascript
Nuxt升级2.0.0时出现的问题(小结)
2018/10/08 Javascript
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
vue使用showdown并实现代码区域高亮的示例代码
2019/10/17 Javascript
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
2014/04/25 Python
教你如何在Django 1.6中正确使用 Signal
2014/06/22 Python
详解Python中的文件操作
2016/08/28 Python
python3实现抓取网页资源的 N 种方法
2017/05/02 Python
Python使用Matplotlib实现雨点图动画效果的方法
2017/12/23 Python
Django进阶之CSRF的解决
2018/08/01 Python
Tensorflow不支持AVX2指令集的解决方法
2020/02/03 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
2020/10/31 Python
利用html5 canvas动态画饼状图的示例代码
2018/04/02 HTML / CSS
意大利综合购物网站:Giordano Shop
2016/10/21 全球购物
解释下列WebService名词:WSDL、SOAP、UDDI
2012/06/22 面试题
2014年度党员自我评议
2014/09/13 职场文书
居住证明范文
2015/06/17 职场文书
25句企业管理语录:助你迅速打开思路,句句经典!
2020/01/14 职场文书
青岛市的收音机研制与生产
2022/04/07 无线电
JS前端使用canvas实现扩展物体类和事件派发
2022/08/05 Javascript