关于jasmine就不多说了,关于语法请参加官方文档。http://pivotal.github.io/jasmine/

关于NodeJS的单元测试框架有多种,如果要在NodeJS中使用jasmine的话 ,需要安装jasmine-node. 采用npm安装即可。github地址 https://github.com/mhevery/jasmine-node

全局安装 jasmine-node 。  npm install jasmine-node -g  安装完之后环境基本也算是搭建好了。下面写个Demo。

编写我们NodeJS的功能js代码  。新建一个目录 test

新建我们要编写的js功能文件BubbleSort.js

这里就拿冒泡排序来说吧 .具体算法可以忽略,功能就是将一个数组从小到大排序

 function BubbleSort(arr) { //交换排序->冒泡排序
var st = new Date();
var temp;
var exchange;
for(var i=0; i<arr.length; i++) {
exchange = false;
for(var j=arr.length-2; j>=i; j--) {
if((arr[j+1]) < (arr[j])) {
temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
exchange = true;
}
}
if(!exchange) break;
}
return arr;
}

  

接下来就可以编写测试代码了 文件名 testspec.js

var BubbleSort = require('./BubbleSort.js'); //引入BubbleSort.js
describe('basic tests', function(){
it('test sample', function(){
expect(BubbleSort.BubbleSort([42,75,84,63,13])).toEqual([13,42,63,75,84]);
});
});

代码已经编写完了。cmd打开控制台进入test文件夹。运行 jasmine-node testspec.js

下面修改下代码。故意搞错  expect(BubbleSort.BubbleSort([42,75,84,63,13])).toEqual([42,13,63,84,75])。

重新运行 jasmine-node testspec.js

当然也可以进行自动的测试,也可以增加 --autotest选项,当文件发生变化的时候进行自动测试 jasmine-node --autotest  testspec.js。 。启动一次 会自动监控文件的变化,也可以通过 --watch 路径 。来检测变化的文件。

同时也支持对异步的测试。比如我用express 写两个简单的服务 核心代码如下

app.get('/username',function(req, res){
res.send("kunkun");
});

在浏览器中访问localhost:3000/username

以上准备好了一个服务。

我们已经清楚,下面在代码里进行异步的访问测试。使用request 模块可以方便地来访问服务。使用方式请参考https://github.com/mikeal/request

先使用npm来安装,进入 test 文件夹运行  npm install request 。修改测试代码testspec.js

 var request = require('request');
describe('asyc tests', function(){
it("should respond with kunkun", function(done) {
request("http://localhost:3000/username", function(error, response, body){
expect(body).toEqual("kunkun");
done();
});
});
});

  测试通过。

主意事项  测试代码的名字 一定要以 spec.js来结尾,比如我的测名代码的名字为testspec.js。如果测试代码是coffee格式 要以 spec.coffee来结尾。否则jasmine会不认的。。

官方解释如下:

Write the specifications for your code in *.js and *.coffee files in the spec/ directory. You can use sub-directories to better organise your specs. Note: your specification files must be named as *spec.js, *spec.coffee or *spec.litcoffee, which matches the regular expression /spec\.(js|coffee|litcoffee)$/i; otherwise jasmine-node won't find them! For example, sampleSpecs.js is wrong, sampleSpec.js is right.

关于更多的内容请参考 https://github.com/mhevery/jasmine-node 。自己down下来慢慢研究吧,里面有不少测试的例子。

使用jasmine-node 进行NodeJs单元测试 环境搭建的更多相关文章

  1. node.js之开发环境搭建

    一.安装linux系统 (已安装linux可跳此步骤) 虚拟机推荐选择:VirtualBox 或者 Vmware (专业版永久激活码:5A02H-AU243-TZJ49-GTC7K-3C61N) 我这 ...

  2. NodeJS开发环境搭建

    原创作者: zero20121222 NodeJS开发环境搭建 1.安装NodeJS 1.编译环境 源代码编译器,通常 Unix/Linux平台都自带了C++的编译器(GCC/G++).如果没有,请通 ...

  3. 《Node.js入门》CentOS 6.5下Node.js Web开发环境搭建笔记

    近期想尝试一下英特尔的基于WebRTC协同通信开发套件,所以须要在本地搭建Node.js Web的开发測试环境. 这里讲的是CentOS 下的搭建方法.使用Windows的小伙伴请參考: <No ...

  4. 57.NodeJS入门--环境搭建 IntelliJ IDEA

    转自:https://blog.csdn.net/wang19891106/article/details/51127133 NodeJS入门–环境搭建 IntelliJ IDEA 本人也刚开始学习N ...

  5. NodeJS入门--环境搭建 IntelliJ IDEA

    NodeJS入门–环境搭建 IntelliJ IDEA 本人也刚开始学习NodeJS,所以以此做个笔记,欢迎大家提出意见. 1.首先 下载安装NodeJS,下载安装IntelliJ IDEA 2.接下 ...

  6. node访问oracledb的环境搭建

    关于安装oracleDB环境官网说明地址: https://oracle.github.io/node-oracledb/INSTALL.html 环境搭建所需软件和文档的压缩包 链接: https: ...

  7. NodeJS的环境搭建+传统ELmentui+vue开发

    ElementUI简介 我们学习VUE,知道它的核心思想式组件和数据驱动,但是每一个组件都需要自己编写模板,样式,添加事件,数据等是非常麻烦的, 所以饿了吗推出了基于VUE2.0的组件库,它的名称叫做 ...

  8. node 项目中 koa2 环境搭建 以及项目发布

    环境搭建: 1.Koa 必须使用 7.6 以上的版本.如果你的版本低于这个要求,就要先升级 Node. 查看node版本方法:node -v 2.使用koa-generator生成器生成项目 安装ko ...

  9. Docker学习之——Node.js+MongoDB+Nginx环境搭建(一)

    最近在学习Node.js相关知识,在环境搭建上耗费了不少功夫,故此把这个过程写下来同大家分享一下,今天我先来介绍一下Docker,有很多人都写过相关知识,还有一些教程,在此我只想写一下,我的学习过程中 ...

随机推荐

  1. MySql For Windows解压缩版配置

    #配置步骤 1.首先下载解压. (此处我解压到了我电脑的“E:\software\MySql”这个位置,下文以这个目录举例); 2.我的电脑右键属性,找到环境变量配置,配置环境变量,将mysql.ex ...

  2. zabbix 报警方式之 微信公众号报警(5)

    一.条件 首先你得有一个微信公众号,并且是可以有发送消息的接口.然后你得有个脚本去调用微信的api. 这里感谢一下微信.使我们运维人员的报警方式多了一种... (同事们不要怪我哈.) 之后可以参考下z ...

  3. HTTP与TCP/IP的区别

    TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据.关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:“我们在传输数据时,可以只 ...

  4. BIOS设置图解教程-看完就没有不明白的了

    BIOS(基本输入/输出系统)是被固化在计算机CMOS RAM芯片中的一组程序,为计算机提供最初的.最直接的硬件控制.BIOS主要有两类∶AWARD BIOS和AMI BIOS.正确设置BIOS可大大 ...

  5. 变体类型 Variant VARIANT

    变体类型 Variant VARIANT class RTL_DELPHIRETURN Variant: public TVarData typedef struct    tagVARIANT  V ...

  6. Sersync + Rsync 代码分发

    简介: Sersync 是基于 inotify 来编写的 Linux 系统文件监控工具,当监控到文件发生变化时,调用 rsync 同步文件. 类似的功能,以前有用 rsync + inotify 实现 ...

  7. js中格式化时间

    //时间格式化 Date.prototype.Format = function (fmt) { var o = { "M+": this.getMonth() + 1, &quo ...

  8. 对excel进行封装

    package com.huawei.utils; import java.io.FileNotFoundException;import java.io.FileOutputStream;impor ...

  9. 一个word小技巧

    最近在进行word格式重拍的时候发现了一个有些恶心的事,怎么去匹配文档里面所有的中文呢? 后来通过网络搜索发现了答案,在word中的查找和替换中有一个选项,可以使用通配符进行匹配. 当我们使用 ([一 ...

  10. Cassandra读写性能测试

    1. 测试目的 测试Cassandra集群读写TPS的极值,确定Cassandra读写性能. 2. 测试环境 2.1 硬件信息 CPU 8核 Intel(R) Xeon(R) CPU E5-2650 ...