前端之 —— node.js摸爬打滚之路(二)

这篇主要学习:

  • 测试框架mocha;
  • 断言库:should;
  • 测试率覆盖工具 istanbul;

创建并进入lesson3:

mkdir lesson3 && lesson3

创建main.js并编写测试函数:

var fibonacci = function(n) {
    if(typeof n !== 'number'){
        throw new Error('n should be a Number')
    }
    if(n < 0){
        throw new Error('n should >= 0')
    }
    if(n > 10){
        throw new Error('n should <= 10')
    }
    if(n === 0){
        return 0
    }
    if(n === 1){
        return 1
    }
    return fibonacci(n-1) + fibonacci(n-2)
}

if(require.main === module){
    var n = Number(process.argv[2])
    console.log('fibonacci('+ n +') is',fibonacci(n))
}

exports.fibonacci = fibonacci

 

lesson3下创建test文件夹,并创建main.test.js:

mkdir test && cd test && echo.>main.test.js

在main.test.js编写测试用例:

var main = require('../main')
var should = require('should')

describe('test/main.test.js',function(){
    it('should equal 0 when n === 0', function(){
        main.fibonacci(0).should.equal(0)
    })
    it('should equal 1 when n === 1', function(){
        main.fibonacci(1).should.equal(1)
    })
    it('should equal 55 when n === 10', function(){
        main.fibonacci(10).should.equal(55)
    })
    it('should throw when n > 10', function (){
    (function (){
      main.fibonacci(11)
    }).should.throw('n should <= 10')
  })
    it('should throw when n < 0', function(){
        (function(){
            main.fibonacci(-1)
        }).should.throw('n should >= 0')
    })
    it('should throw when n isnt Number', function(){
        (function(){
            main.fibonacci('逗比')
        }).should.throw('n should be a Number')
    })
})

cmd输出:

mocha

如下图所示则完成测试:

安装一个 istanbul:

cnpm i istanbul -g

执行:

istanbul cover _mocha

(注:如果window下报找不到_mocha文件的错,就找到你电脑中mocha安装目录下的_mocha文件的位置替代_mocha,例:istanbul cover C:\Users\[用户名]\AppData\Roaming\npm\node_modules\mocha\bin\_mocha)

可以看到,其中的分支覆盖率是 91.67%,行覆盖率是 87.5%。

转载于:https://www.cnblogs.com/geewonii/p/7172962.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值