Node.js的UnitTest单元测试

在专业化的软件开发过程中,无论什么平台语言,现在都需要UnitTest单元测试. Node.js有built-in的Assert。 今天让我们来看一下Node.js的单元测试。在这儿我们使用nodeunit,

  

  通过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来调试

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-11-03 21:52:44

Node.js的UnitTest单元测试的相关文章

Node.js 单元测试:workflow

Talk is cheap, show me the code! 是否还记得小明在< Node.js 单元测试之我要写测试>里引用的这句话么,不过引用了之后,小明就像跑路了一般再也没见其 code--其实呀,不知道大家有没有关注最近比较火 minggeJs, 稍微联想下你就知道小明最近在忙啥了 O(∩_∩)O~~ 虽说小明现在还写不出 minggeJs 这样的前端库,不过,小明想说的是:当你准备开源一个库的时候,一定要写单元测试:当你要使用一个开源库的时候,单元测试的覆盖率是衡量质量的最重要标

Node.js 单元测试:我要写测试

小明是一个前端工程师,近期因为个人兴趣以及工作上的需要,开始做 Node.js 相关的项目.一个多月过去了,小明基于 Koa 搭出了自己的第一个 Node.js web 应用,在这个过程中,小明也遇到了很多的问题: 如何在上线时保证代码完全没问题? 每次增加功能时如何保证之前的功能是可用的? 随着代码增多,没有勇气和信心去重构代码 面对以上这些问题,小明作为一个前端工程师,惯性思维就是每次部署前先在页面上到处点点,然而一个机智的程序员怎么能把大好时间浪费在这些重复劳动上呢,于是小明就去咨询了组里

玩转Node.js单元测试

代码部署之前,进行一定的单元测试是十分必要的,这样能够有效并且持续保证代码质量.而实践表明,高质量的单元测试还可以帮助我们完善自己的代码.这篇博客将通过一些简单的测试案例,介绍几款Node.js测试模块: Mocha和Should,SuperTest.本文侧重于解释原理,各个模块的详细使用案例以后单独再聊. 为啥需要单元测试? 所谓单元测试,就是对某个函数或者API进行正确性验证.来看个简单的例子add1.js: function add(a, b) { return a + b; } 没错,我

我的Node.js学习之路(四)--单元测试_node.js

通过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 == "&

当IoC遇见了Node.js

没有IoC的年代 一个简单的例子: var Engine = require('./engine'); var Wheel = require('./wheel'); var Car = function() { this.engine = new Engine(); this.wheel = new Wheel(); } Car.prototype.run = function() { this.engine.run(); this.wheel.run(); console.log('run

使用Node.js完成的第一个项目的实践总结

项目简介 这是一个资产管理项目,主要的目的就是实现对资产的无纸化管理.通过为每个资产生成二维码,来联合移动终端完成对资产的审核等.这个项目既提供了Web端的管理界面也提供移动端(Andorid)的资产审核.派发等相关功能. 我们用Node.js构建该项目的Web端以及移动端的Serveice API. 项目主框架:Express 简介 Express 是一个非常流行的node.js的web框架.基于connect(node中间件框架).提供了很多便于处理http请求等web开发相关的扩展. Ex

CodePipeline 持续集成/持续交付快速入门-- Node.js篇

本文演示如何使用Codepipeline构建一个Node.js项目并部署到ECS. 资源准备和限制 申请开通AliyunCodePipelineDefaultRole 服务 创建一台ECS(经典网络或VPC均可) 创建一个OSS的bucket 部署目标机器的操作系统:目前支持Ubutu 16.04, 14.04, Centos 7.3, 7.2, 6.8, Alinux 17.1操作系统. 源码地址:目前支持git协议的代码仓库. 在"用户证书"处根据项目配置设置用户凭证,比如gith

Node.js面试题之2017

本文讲的是Node.js面试题之2017, 为了保证可读性,本文采用意译而非直译. 问题 什么是错误优先的回调函数? 如何避免回调地狱? 什么是Promise? 用什么工具保证一致的代码风格?为什么要这样? 什么是Stub?举例说明 什么是测试金字塔?举例说明 最喜欢哪个HTTP框架?为什么? Cookies如何防范XSS攻击? 如何保证依赖的安全性? 答案 1. 什么是错误优先的回调函数? 错误优先的回调函数(Error-First Callback)用于同时返回错误和数据.第一个参数返回错误

最受欢迎的5款Node.js端到端测试框架

笔者在本文中会结合自身实践和 GitHub 趋势对比最受欢迎的 Node.js E2E 测试解决方案,期望对大家的技术选型有帮助 测试,尤其是自动化测试在现代 WEB 工程中有着非常重要的角色,与交付过程集成良好的自动化测试流程可以在新版发布时帮你快速回归产品功能,也可以充当产品文档.测试因粒度不同又可以分为单元测试.接口测试.功能测试.在 WEB 领域,功能测试亦称为端到端测试(End to End Test,简称 E2E 测试),笔者在本文中会结合自身实践和 GitHub 趋势对比最受欢迎的