Mocha+Istanbul+should小结

PS:这三个东西可以解决单元测试及代码覆盖率问题,本文总结其用法(针对服务器端JS)。

1 准备工作

Mocha是一个测试库,通常与断言库should一起使用来进行测试;Istanbul是一个进行代码覆盖率测试的工具。

一般而言,Mocha和Istanbul都是全局安装的,should是局部安装的,即

npm install Mocha -g                npm install Istanbul -g

假设有以下项目目录,我们要对main.js进行测试。

 第一步:建立test目录

由于执行mocha命令时,默认执行test目录下的文件,所以一般测试文件都放在test目录下,由于要测试main.js故新建一个文件,取名为main.test.js

第二步:安装should断言库(假设Mocha和Istanbul已装好)

进入到project目录,执行npm install should --save-dev,此时准备工作已完成。

2 编写main.js和main.test.js

假设main.js内容如下

var fibonacci = function (n) {
  if (n === 0) {
    return 0;
  }
  if (n === 1) {
    return 1;
  }
  return fibonacci(n-1) + fibonacci(n-2);
};
exports.fibonacci=fibonacci;
if (require.main === module) {
  // 如果是直接执行 main.js,则进入此处
  // 如果 main.js 被其他文件 require,则此处不会执行。
  var n = Number(process.argv[2]);
  console.log('fibonacci(' + n + ') is', fibonacci(n));
}

那么main.test.js应该长这样:

var should=require('should');//引入should
var main=require('../main.js');//引入要被测试的文件

describe('test/main.test.js', function () {
  it('should equal 55 when n === 10', function () {
    main.fibonacci(10).should.equal(55);
  });
});

然后在project目录下用node执行mocha命令,得到如下输出


若执行istanbulcover_mocha命令可得到覆盖率结果和测试结果

3 关于mocha的一些配置项

可以将mocha的一些常用配置项写在一个叫做mocha.opts文件中,这样执行的时候就不用带参数了

server-tests  //指定mocha的执行目录,即有时测试文件不是放在test目录下,使用此命令可以指定mocha执行目录,这里的测试文件就是放在server-tests目录下的
--reporter tap  //指定报告的显示方式,这里是tap风格的

--recursive  //使test的子目录中的测试文件也能执行
--growl  //将测试结果在桌面显示
--watch  //测试文件有变动时会再次执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值