我的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 相关文章推荐
jQuery 使用手册(四)
Sep 23 Javascript
编写js扩展方法判断一个数组中是否包含某个元素
Nov 08 Javascript
javascript中数组的concat()方法使用介绍
Dec 18 Javascript
浅谈javascript中createElement事件
Dec 05 Javascript
jQuery中first()方法用法实例
Jan 06 Javascript
canvas实现流星雨的背景效果
Jan 13 Javascript
浅谈js中的变量名和函数名重名
Feb 13 Javascript
jQuery Dom元素操作技巧
Feb 04 jQuery
用JS实现根据当前时间随机生成流水号或者订单号
May 31 Javascript
Vue2.0点击切换类名改变样式的方法
Aug 22 Javascript
使用axios请求时,发送formData请求的示例
Oct 29 Javascript
Vuejs中的watch实例详解(监听者)
Jan 05 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
PHPCMS V9 添加二级导航的思路详解
2016/10/20 PHP
php计算多个集合的笛卡尔积实例详解
2017/02/16 PHP
PHP实现websocket通信的方法示例
2018/08/28 PHP
PHP中mysqli_get_server_version()的实例用法
2020/02/03 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
2020/04/13 PHP
如何在Web页面上直接打开、编辑、创建Office文档
2007/03/12 Javascript
jQuery 相关控件的事件操作分解
2009/08/03 Javascript
让iframe子窗体取父窗体地址栏参数(querystring)
2009/10/13 Javascript
关于extjs4如何获取grid修改后的数据的问题
2013/08/07 Javascript
toggle一个div显示或隐藏且可扩展成自定义下拉框
2013/09/12 Javascript
js获取当前月的第一天和最后一天的小例子
2013/11/18 Javascript
Angularjs结合Bootstrap制作的一个TODO List
2016/08/18 Javascript
javascript比较语义化版本号的实现代码
2016/09/09 Javascript
谈谈对JavaScript原生拖放的深入理解
2016/09/20 Javascript
import与export在node.js中的使用详解
2017/09/28 Javascript
浅谈vuejs实现数据驱动视图原理
2018/02/23 Javascript
Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验
2019/04/22 Javascript
Vue实现穿梭框效果
2020/09/30 Javascript
[04:19]DOTA2亚洲邀请赛 现场花絮
2015/03/11 DOTA
从零学Python之入门(四)运算
2014/05/27 Python
python实现计算资源图标crc值的方法
2014/10/05 Python
python自动化脚本安装指定版本python环境详解
2017/09/14 Python
python安装numpy&amp;安装matplotlib&amp; scipy的教程
2017/11/02 Python
python将txt等文件中的数据读为numpy数组的方法
2018/12/22 Python
opencv导入头文件时报错#include的解决方法
2019/07/31 Python
详解如何在cmd命令窗口中搭建简单的python开发环境
2019/08/29 Python
pycharm 2019 最新激活方式(pycharm破解、激活)
2020/09/22 Python
印度手工编织服装和家居用品商店:Fabindi
2019/10/07 全球购物
Java基础面试题
2014/07/19 面试题
大客户销售经理职责
2013/12/04 职场文书
中年人生感言
2014/02/04 职场文书
文明风采获奖感言
2014/02/18 职场文书
保密承诺书
2014/03/27 职场文书
python如何利用traceback获取详细的异常信息
2021/06/05 Python
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
2022/04/12 PostgreSQL
MySQL数据管理操作示例讲解
2022/12/24 MySQL