基于node的基础单元测试

具体源码请见github:基础单元测试

1、所需要用到的模块

- assert nodejs原生的断言
- chai 是封装了的三方断言工具库
- power-assert 也是封装了的三方断言工具库
- mocha 专门用来测试的第三方框架,非常强大,推荐使用
- istanbul 是用来做单元测试覆盖率的,非常强大好用

2、首先建立一个基础的math.js的文件,写入一些需要测试的基础方法:

module.exports = {
    add: (...args) => {
        return args.reduce((prev, curr) => {
            return prev + curr;
        })
    },

    mul: (...args) => {
        return args.reduce((prev,curr)=>{
            return prev*curr;
        })
    }
};

3、chai 断言库的基本使用

const {should,expect,assert}=require('chai');
const {add,mul}=require('../01、math');

should();

add(2,3).should.equal(5);
expect(add(2,3)).to.be(5);
assert.equal(add(2,3),5);

4、chai 结合 mocha 做基本的单元测试使用方法

const {should,expect,assert}=require('chai');
const {add,mul}=require('../01、math');

describe('#math',()=>{
    before((done)=>{
       //这个地方是可以写一些测试前执行的函数
        done();
    });

    describe('add',()=>{
        it('should return 5 when 2+3', function () {
            expect(add(2,3),5)
        });

        it('should return -1 when 2-3', function () {
            expect(add(2,-3),-1)
        });

/*        it.only('should return -1 when 2-3', function () {
            expect(add(2,-3),-1)
        });*/

/*        it.skip('should return -1 when 2-3', function () {
            expect(add(2,-3),-1)
        });*/
    });

    describe('mul',()=>{
        it('should return 6 when 2*3', function () {
            expect(mul(2,3),6)
        });
    })
});

describe('#test',()=>{
    describe('add',()=>{
        it( 'should return 5 when 2+3', function () {
            expect(add(2,3),5);
        });
    });

    describe('mul',()=>{
        it('should return 6 when 2*3', function () {
            expect(mul(2,3),6);
        });
    });


});

describe这个函数里面,before可以对测试做前置处理。it是具体的测试回调,回调可以有一个参数,done,这个done其实也是一个回调函数,可以控制测试单元it的执行。

5、power-assert结合mocha 通过调用done回调函数的方式来进行单元测试

const assert=require('power-assert');
const {add,mul}=require('../01、math');

describe('#test',function(){
    describe('add',()=>{
        it('should return 5 when 2+3', function (done) {
            done(assert(add(2,3))===5);
        });

        it('should return -1 when 2-3', function (done) {
            let a=2,b=-3;

            done(assert(add(a,b))===-1);
        });
    });

    describe('mul',()=>{
        it('should return 6 when 2*3', function () {
            assert.equal(mul(2,3), 6)
        });
    })
});

6、最后可以在package.json 里面配置script启动项:

  "scripts": {
    "test": "mocha 18年/2月/7、单元测试/test/02、mocha.js",
    "cover": "istanbul cover node_modules/mocha/bin/_mocha 18年/2月/7、单元测试/test/02、mocha.js"
  },


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值