在开发中,养成编写测试用例的习惯是必不可少的,mocha就是一个运行在nodeJs 上的简单测试库。
1、安装mocha(二者选其一即可):
(1)全局安装:npm install --global mocha
(2)项目组安装:npm install --save-dev mocha
2、mocha中的 describe和 it
describe声明了一个测试集合,且可以嵌套管理。
it声明定义了一个具体的测试用例。
接下来我们以"二分法查找"为例学习mocha 的使用
定义一个BinarySearch类(该类只是进行二分查找,不再做过多解释):
class BinarySearch
{
//构造函数
constructor(){
this.needSortedArray = null
this.needFindValue = null
}
//二分法查找,返回-1表示传入值错误,1表示找到元素, 0表示未找到元素
searchScope(fromIndex, toIndex)
{
if(fromIndex > toIndex)
return 0
var centerIndex = fromIndex + parseInt((toIndex - fromIndex) * 0.5)
var centerValue = this.needSortedArray[centerIndex]
if(centerValue === this.needFindValue)
return 1
if(centerValue < this.needFindValue) //向右
{
return this.searchScope(centerIndex+1, toIndex)
}
return this.searchScope(fromIndex, centerIndex-1)
}
search(sortedArray, findValue)
{
//数组不存在 或 未定义 或 非数组类型,返回-1
if(!sortedArray || typeof sortedArray == 'undefined' || !(sortedArray instanceof Array))
return -1
//这两行代码相当于C++中的引用,并没有重新分配空间
this.needSortedArray = sortedArray
this.needFindValue = findValue
return this.searchScope(0, sortedArray.length-1)
}
}
module.exports = BinarySearch
创建一个BinarySearchTest.js文件
引入头文件assert,mocha一般与assert配合使用
var BinarySearch = require('./BinarySearch.js')
var assert = require('assert')
describe('测试二分查找算法', function() {
describe('测试传递null数值', function() {
it('必须返回-1', function() {
var searchInstance = new BinarySearch()
var searchResult = searchInstance.search(null, 0)
assert.equal(-1, searchResult)
console.log("searchResult : ", searchResult)
})
})
describe('测试传递数组', function() {
it('必须返回1', function() {
var searchInstance = new BinarySearch()
var searchResult = searchInstance.search([1,2,3,4,5,6], 6)
assert.equal(1, searchResult)
console.log("searchResult : ", searchResult)
})
})
})
我们可以分段运行上述describe,在控制台上可以清楚看到嵌套层次,并且可以单独执行。
好了,本文只是简单的介绍了mocha测试框架的使用方法,希望可以对学者有所帮助。学海无涯,我们需要探索的东西还有很多很多。